check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addFormalParameterList((node) {
    if ((configBool(ruleConfig, 'ignore-single') ?? false) &&
        node.parameters.length == 1) {
      return;
    }

    final positionalBools = <FormalParameter>[];
    for (final param in node.parameters) {
      if (param.isNamed) continue;

      final effectiveParam = param is DefaultFormalParameter
          ? param.parameter
          : param;
      if (effectiveParam is! SimpleFormalParameter) continue;

      final typeAnnotation = effectiveParam.type;
      if (typeAnnotation is! NamedType) continue;
      if (typeAnnotation.name.lexeme != 'bool') continue;

      positionalBools.add(param);
    }

    if ((configBool(ruleConfig, 'ignore-single-boolean') ?? false) &&
        positionalBools.length == 1) {
      return;
    }

    for (final param in positionalBools) {
      reportAtNode(param);
    }
  });
}