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,
) {
context.registry.addMethodInvocation((node) {
final classDecl = node.thisOrAncestorOfType<ClassDeclaration>();
final element = classDecl?.declaredElement;
if (element == null) return;
if (!_isViewModel(element)) return;
final methodName = node.methodName.name;
final target = node.realTarget;
if (target == null) {
if (!_bannedTopLevel.contains(methodName)) return;
if (!_isFlutterSdk(node.methodName.staticElement)) return;
reporter.atNode(node, _code);
return;
}
if (target is Identifier) {
final receiverName = target.name;
if (!_bannedReceivers.contains(receiverName)) return;
if (!_isFlutterSdk(target.staticElement)) return;
reporter.atNode(node, _code);
}
});
}