check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addClassDeclaration((node) {
    final superclass = node.extendsClause?.superclass;
    if (superclass == null) return;

    if (superclass.name.lexeme != 'StatelessWidget') return;
    if (!isFromExpectedPackage(superclass, 'flutter')) return;

    final body = node.body;
    if (body is! BlockClassBody) return;
    for (final member in body.members) {
      if (member is! FieldDeclaration) continue;
      if (member.isStatic) continue;

      final fields = member.fields;

      if (fields.isConst) continue;

      for (final variable in fields.variables) {
        if (variable.initializer != null || !fields.isFinal) {
          reportAtToken(variable.name);
        }
      }
    }
  });
}