check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  final allowInitialized =
      configBool(ruleConfig, 'allow-initialized') ?? false;
  final ignoredTypes =
      configStringList(ruleConfig, 'ignored-types') ??
      const ['AnimationController'];

  registry.addVariableDeclarationList((node) {
    final lateKeyword = node.lateKeyword;
    if (lateKeyword == null) return;

    if (allowInitialized) {
      final allInitialized = node.variables.every(
        (v) => v.initializer != null,
      );
      if (allInitialized) return;
    }

    if (ignoredTypes.isNotEmpty) {
      final typeAnnotation = node.type;
      if (typeAnnotation is NamedType) {
        if (ignoredTypes.contains(typeAnnotation.name.lexeme)) return;
      }
    }

    reportAtToken(lateKeyword);
  });
}