check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addObjectPattern((node) {
    final typeName = node.type.name.lexeme;
    if (!_asyncValueTypes.contains(typeName)) return;

    final typeArgs = node.type.typeArguments;
    if (typeArgs != null) {
      for (final arg in typeArgs.arguments) {
        if (arg.toSource().endsWith('?')) {
          reportAtNode(node);
          return;
        }
      }
    }

    for (final field in node.fields) {
      final pattern = field.pattern;
      if (pattern is NullCheckPattern || pattern is NullAssertPattern) {
        reportAtNode(node);
        return;
      }
    }
  });
}