getDynamic method

dynamic getDynamic()

Reads a constant with type dynamic.

Throws an ErrorOf<ConstantReader> if a constant cannot be constructed.

Implementation

dynamic getDynamic() {
  final resolvedType = resolveType(dartType);
  if (resolvedType == UnknownType) {
    // Try registered types:
    final types = registeredTypes.difference(resolvedTypes);
    for (final type in types) {
      if (isMatch(dartType, type)) {
        return _decoders[type]!(this);
      }
    }
  } else if (_decoders.containsKey(resolvedType)) {
    return _decoders[resolvedType]!(this);
  }
  throw ErrorOf<ConstantReader>(
      message: 'Could not read constant via get<$dynamic>().',
      expectedState: 'A registered decoder for data-type '
          '<$dartType>.',
      invalidState: 'Only these types are registered: '
          '${_decoders.keys.toList()}');
}