in rules/dumb-inject.js [31:77]
'angular?inject': function(callExpression, fn) {
if (!fn) {
return;
}
var valid = [];
// Report bad statement types
fn.body.body.forEach(function(statement) {
if (statement.type !== 'ExpressionStatement') {
return report(statement);
}
if (statement.expression.type !== 'AssignmentExpression') {
return report(statement);
}
if (statement.expression.right.type !== 'Identifier') {
return report(statement);
}
// From this point there is more context on what to report.
var name = statement.expression.right.name.replace(/^_(.+)_$/, '$1');
if (statement.expression.left.type !== 'Identifier') {
return report(statement, name);
}
if (statement.expression.right.name !== '_' + name + '_') {
return report(statement, name);
}
if (statement.expression.left.name !== name) {
return report(statement, name);
}
// Register valid statements for sort order validation
valid.push(statement);
});
// Validate the sorting order
var lastValid;
valid.forEach(function(statement) {
if (!lastValid) {
lastValid = statement.expression.left.name;
return;
}
if (statement.expression.left.name.localeCompare(lastValid) !== -1) {
lastValid = statement.expression.left.name;
return;
}
context.report(statement, "'{{current}}' must be sorted before '{{previous}}'", {
current: statement.expression.left.name,
previous: lastValid
});
});
}