Skip to content

TypeChecker throws exception when used on dynamic type #792

@Rexios80

Description

@Rexios80
  Null check operator used on a null value
  #0      _NameTypeChecker.isExactly (package:source_gen/src/type_checker.dart:260:32)
  #1      TypeChecker.isAssignableFrom (package:source_gen/src/type_checker.dart:173:7)
  #2      TypeChecker.isAssignableFromType (package:source_gen/src/type_checker.dart:179:31)
  #3      ClassAdapterBuilder._cast (package:hive_ce_generator/src/adapter_builder/class_adapter_builder.dart:122:25)
  #4      ClassAdapterBuilder._value (package:hive_ce_generator/src/adapter_builder/class_adapter_builder.dart:101:19)
  #5      ClassAdapterBuilder.buildRead (package:hive_ce_generator/src/adapter_builder/class_adapter_builder.dart:79:20)
  #6      TypeAdapterGenerator.generateTypeAdapter (package:hive_ce_generator/src/generator/type_adapter_generator.dart:67:19)
  #7      TypeAdapterGenerator.generateForAnnotatedElement (package:hive_ce_generator/src/generator/type_adapter_generator.dart:22:20)
  <asynchronous suspension>
  #8      normalizeGeneratorOutput (package:source_gen/src/output_helpers.dart:10:1)
  <asynchronous suspension>
  #9      StreamCompleter.setSourceStream (package:async/src/stream_completer.dart:76:3)
  <asynchronous suspension>

This exception is thrown when calling TypeChecker.isAssignableFromType(type) when type is dynamic or has dynamic type parameters.

For example:

final dynamic field1;
final Map field2;
final Set<dynamic> field3;

Here are my type checkers:

  /// [TypeChecker] for [Map].
  final mapChecker =
      const TypeChecker.typeNamed(Map, inPackage: 'core', inSdk: true);

  /// [TypeChecker] for [Set].
  final setChecker =
      const TypeChecker.typeNamed(Set, inPackage: 'core', inSdk: true);

  /// [TypeChecker] for [Iterable].
  final iterableChecker =
      const TypeChecker.typeNamed(Iterable, inPackage: 'core', inSdk: true);

See also:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions