check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addExtensionTypeDeclaration((node) {
    final param =
        node.primaryConstructor.formalParameters.parameters.firstOrNull;
    if (param is! SimpleFormalParameter) return;
    final fieldName = param.name?.lexeme;
    if (fieldName == null) return;

    final body = node.body;
    if (body is! BlockClassBody) return;
    for (final member in body.members) {
      if (member is MethodDeclaration && member.isGetter) {
        final body = member.body;
        if (body is ExpressionFunctionBody) {
          final expression = body.expression;
          if (expression is SimpleIdentifier &&
              expression.name == fieldName) {
            reportAtToken(member.name);
          }
        }
      }
    }
  });
}