all-flags-state
Ast Rule: function call
all-flags-state
function visit(node, filename, code) {
if(node.functionName.value !== "all_flags_state") {
return;
}
const functionNameNode = node.functionName;
if(node.arguments && node.arguments.values && node.arguments.values.length !== 1){
const error = buildError(functionNameNode.start.line, functionNameNode.start.col,
functionNameNode.end.line, functionNameNode.end.col,
"function all_flags_state() takes one argument (a user)", "MINOR", "BEST_PRACTICES");
const edit = buildEditAdd(node.end.line, node.end.col, "user")
const fix = buildFix("add user argument", [edit]);
addError(error.addFix(fix));
}
if(node.arguments && node.arguments.values && node.arguments.values.length === 1) {
const firstArgument = node.arguments.values[0];
if(firstArgument.value.value.startsWith("\"") || firstArgument.value.value.startsWith("f\"")) {
const error = buildError(firstArgument.start.line, firstArgument.start.col,
firstArgument.end.line, firstArgument.end.col,
"argument should be a user, not a string", "MINOR", "BEST_PRACTICES");
addError(error);
}
}
}
argument-with-string.py
Expected test result: has error
two-arguments.py
Expected test result: has error