check method

  1. @override
void check(
  1. DcqRegistry registry
)

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addMethodDeclaration((node) {
    if (node.isGetter || node.isSetter) return;
    if (node.isOperator) return;
    if (node.isAbstract) return;
    if (node.isStatic) return;

    final hasOverride = node.metadata.any(
      (a) => a.name.name == 'override',
    );
    if (hasOverride) return;

    if ((configStringList(ruleConfig, 'ignored-names') ?? const []).contains(
      node.name.lexeme,
    )) {
      return;
    }

    final params = node.parameters;
    if (params == null || params.parameters.isNotEmpty) return;

    if (node.body is! ExpressionFunctionBody) return;

    if ((configBool(ruleConfig, 'ignore-await') ?? false) &&
        node.body.keyword?.lexeme == 'async') {
      return;
    }

    final returnType = node.returnType;
    if (returnType != null && returnType.toSource() == 'void') return;

    reportAtToken(node.name);
  });
}