check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  final ignoredTypes =
      configStringList(ruleConfig, 'ignored-types') ?? const [];

  registry.addCascadeExpression((node) {
    if (ignoredTypes.isNotEmpty) {
      final targetType = node.target.staticType;
      if (targetType != null) {
        final typeName = targetType.getDisplayString();
        if (ignoredTypes.contains(typeName)) return;
      }
    }

    final sections = node.cascadeSections;
    if (sections.length < 2) return;

    final seen = <String>{};
    for (final section in sections) {
      if (!seen.add(section.toSource())) {
        reportAtNode(node);
        return;
      }
    }
  });
}