check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addVariableDeclaration((node) {
    final initializer = node.initializer;
    if (initializer == null) return;

    final type = initializer.staticType;
    if (type is! InterfaceType) return;

    final isNotifier = type.element.allSupertypes.any((s) {
      final name = s.element.name;
      if (!_notifierBaseClasses.contains(name)) return false;
      final uri = Uri.tryParse(s.element.library.identifier);
      if (uri == null || uri.scheme != 'package') return true;
      final pkg = uri.pathSegments.firstOrNull;
      final expectedPackage = name == 'StateNotifier'
          ? 'state_notifier'
          : 'riverpod';
      return pkg == expectedPackage;
    });

    if (isNotifier) {
      reportAtNode(node);
    }
  });
}