check method

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

Implementation

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

  registry.addClassDeclaration((node) {
    final classElement = node.declaredFragment?.element;
    if (classElement == null) return;

    if (ignoredAnnotations.isNotEmpty) {
      for (final annotation in node.metadata) {
        final name = annotation.name.name;
        if (ignoredAnnotations.contains(name)) return;
      }
    }

    final finder = _SubclassReferenceFinder(classElement);
    node.accept(finder);

    for (final reference in finder.references) {
      reportAtNode(reference);
    }
  });
}