check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  if (!(configBool(ruleConfig, 'ignore-parameters') ?? false)) {
    registry.addFormalParameterList((node) {
      for (final param in node.parameters) {
        final effectiveParam = param is DefaultFormalParameter
            ? param.parameter
            : param;
        if (effectiveParam is! SimpleFormalParameter) continue;
        if (!_isBoolType(effectiveParam.type)) continue;

        final name = effectiveParam.name?.lexeme;
        if (name == null || name.startsWith('_')) continue;
        if ((configStringList(ruleConfig, 'ignored-names') ?? const [])
            .contains(name)) {
          continue;
        }
        if (_hasValidPrefix(name)) continue;

        reportAtToken(effectiveParam.name!);
      }
    });
  }

  if (!(configBool(ruleConfig, 'ignore-fields') ?? false)) {
    registry.addFieldDeclaration((node) {
      if (!_isBoolType(node.fields.type)) return;
      if (_hasIgnoredAnnotation(node.metadata)) return;

      for (final variable in node.fields.variables) {
        final name = variable.name.lexeme;
        if (name.startsWith('_')) continue;
        if ((configStringList(ruleConfig, 'ignored-names') ?? const [])
            .contains(name)) {
          continue;
        }
        if (_hasValidPrefix(name)) continue;

        reportAtToken(variable.name);
      }
    });
  }

  if (!(configBool(ruleConfig, 'ignore-methods') ?? false)) {
    registry.addMethodDeclaration((node) {
      if (node.isOperator) return;
      final returnType = node.returnType;
      if (!_isBoolType(returnType)) return;
      if (_hasIgnoredAnnotation(node.metadata)) return;

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

      reportAtToken(node.name);
    });
  }
}