getPrimitive method

dynamic getPrimitive(
  1. Map<int, LookupValue> definitions,
  2. int frameId
)

Implementation

getPrimitive(Map<int, LookupValue> definitions, int frameId) {
  final def = definitions[frameId]!.def;

  if (def.tag == 'primitive') {
    return def.value.tag;
  }

  if ((def.tag != 'composite' && def.tag != 'tuple') || def.value.length > 1) {
    throw Exception('TypeDef provided does not map to a primitive type');
  }

  return def.value.length == 0
      ? null
      : getPrimitive(definitions, def.tag == 'tuple' ? def.value[0] : def.value[0].type);
}