check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addMethodDeclaration((node) {
    final methodTypeParams = node.typeParameters?.typeParameters;
    if (methodTypeParams == null || methodTypeParams.isEmpty) return;

    final bodyNode = node.parent;
    final parent = bodyNode is BlockClassBody ? bodyNode.parent : bodyNode;
    final parentTypeParams = _getTypeParameters(parent);
    if (parentTypeParams == null || parentTypeParams.isEmpty) return;

    final parentNames = {
      for (final p in parentTypeParams) p.name.lexeme,
    };

    for (final param in methodTypeParams) {
      if (parentNames.contains(param.name.lexeme)) {
        reportAtToken(param.name);
      }
    }
  });
}