run method

  1. @override
void run(
  1. CustomLintResolver resolver,
  2. ErrorReporter reporter,
  3. CustomLintContext context
)
override

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.addArgumentList((node) {
    for (final argument in node.arguments) {
      final parameter = argument.staticParameterElement;
      if (parameter == null) continue;

      if (_checker.hasAnnotationOf(parameter)) {
        if (argument is FunctionExpression) {
          reporter.atNode(argument, code);
          continue;
        }
        if (argument is Identifier) {
          final element = argument.staticElement;
          final isAllowedReference =
              element is VariableElement ||
              element is PropertyAccessorElement;
          if (!isAllowedReference) {
            reporter.atNode(argument, code);
          }
        }
      }
    }
  });
}