run method
void
run(
- CustomLintResolver resolver,
- ErrorReporter reporter,
- CustomLintContext context
Emits lints for a given file.
run will only be invoked with files respecting filesToAnalyze
Implementation
@override
void run(
CustomLintResolver resolver,
ErrorReporter reporter,
CustomLintContext context,
) {
final path = resolver.source.fullName.replaceAll('\\', '/');
if (_isExempt(path)) return;
context.registry.addFieldDeclaration((node) {
if (!node.isStatic) return;
final keyword = node.fields.keyword?.keyword;
if (keyword != null &&
(keyword.lexeme == 'const' || keyword.lexeme == 'final')) {
return;
}
final classDecl = node.thisOrAncestorOfType<ClassDeclaration>();
final element = classDecl?.declaredElement;
if (element == null) return;
if (!_isNotifier(element)) return;
for (final variable in node.fields.variables) {
reporter.atNode(variable, _code);
}
});
}