mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 21:10:12 +01:00
Change ImplWitnessTablePlaceholder from instruction to InstId value (#6294)
`ImplWitnessTablePlaceholder` is the only non-type singleton instruction (`ErrorInst` is a type; while `ImplWitnessTablePlaceholder` exposes `TypeInstId`, it's only used as an `InstId`). In order to allow simpler handling of singleton instructions, replace `ImplWitnessTablePlaceholder::TypeInstId` uses with `InstId::ImplWitnessTablePlaceholder`. Since the placeholder instruction was never evaluated, this has no significant effect on behavior. --------- Co-authored-by: Dana Jansens <danakj@orodu.net>
This commit is contained in:
co-authored by
Dana Jansens
parent
93dc369ebd
commit
a1fd86cf27
@@ -135,7 +135,7 @@ auto InitialFacetTypeImplWitness(
|
||||
context.inst_blocks().AddUninitialized(assoc_entities.size());
|
||||
table = context.inst_blocks().GetMutable(elements_id);
|
||||
for (auto& uninit : table) {
|
||||
uninit = SemIR::ImplWitnessTablePlaceholder::TypeInstId;
|
||||
uninit = SemIR::InstId::ImplWitnessTablePlaceholder;
|
||||
}
|
||||
|
||||
auto witness_table_inst_id = AddInst<SemIR::ImplWitnessTable>(
|
||||
@@ -196,7 +196,7 @@ auto InitialFacetTypeImplWitness(
|
||||
// FacetTypes resolution disallows two rewrites to the same associated
|
||||
// constant, so we won't ever have a facet write twice to the same position
|
||||
// in the witness table.
|
||||
CARBON_CHECK(table_entry == SemIR::ImplWitnessTablePlaceholder::TypeInstId);
|
||||
CARBON_CHECK(table_entry == SemIR::InstId::ImplWitnessTablePlaceholder);
|
||||
|
||||
// If the associated constant has a symbolic type, convert the rewrite
|
||||
// value to that type now we know the value of `Self`.
|
||||
@@ -274,7 +274,7 @@ auto AllocateFacetTypeImplWitness(Context& context,
|
||||
}
|
||||
|
||||
llvm::SmallVector<SemIR::InstId> empty_table(
|
||||
assoc_entities.size(), SemIR::ImplWitnessTablePlaceholder::TypeInstId);
|
||||
assoc_entities.size(), SemIR::InstId::ImplWitnessTablePlaceholder);
|
||||
context.inst_blocks().ReplacePlaceholder(witness_id, empty_table);
|
||||
}
|
||||
|
||||
|
||||
@@ -141,7 +141,7 @@ auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void {
|
||||
CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity");
|
||||
if (auto decl =
|
||||
context.insts().TryGetAs<SemIR::AssociatedConstantDecl>(decl_id)) {
|
||||
if (witness_value == SemIR::ImplWitnessTablePlaceholder::TypeInstId) {
|
||||
if (witness_value == SemIR::InstId::ImplWitnessTablePlaceholder) {
|
||||
CARBON_DIAGNOSTIC(ImplAssociatedConstantNeedsValue, Error,
|
||||
"associated constant {0} not given a value in impl "
|
||||
"of interface {1}",
|
||||
@@ -252,7 +252,7 @@ auto FillImplWitnessWithErrors(Context& context, SemIR::Impl& impl) -> void {
|
||||
auto witness_block =
|
||||
context.inst_blocks().GetMutable(witness_table.elements_id);
|
||||
for (auto& elem : witness_block) {
|
||||
if (elem == SemIR::ImplWitnessTablePlaceholder::TypeInstId) {
|
||||
if (elem == SemIR::InstId::ImplWitnessTablePlaceholder) {
|
||||
elem = SemIR::ErrorInst::InstId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
// CHECK:STDOUT: functions: {}
|
||||
@@ -45,14 +45,13 @@
|
||||
// CHECK:STDOUT: 'inst(CppVoidType)': {kind: CppVoidType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)}
|
||||
// CHECK:STDOUT: 'inst(FloatLiteralType)': {kind: FloatLiteralType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': {kind: ImplWitnessTablePlaceholder, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(InstType)': {kind: InstType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': {kind: IntLiteralType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(NamespaceType)': {kind: NamespaceType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(SpecificFunctionType)': {kind: SpecificFunctionType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType))
|
||||
@@ -63,14 +62,13 @@
|
||||
// CHECK:STDOUT: 'inst(CppVoidType)': concrete_constant(inst(CppVoidType))
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst))
|
||||
// CHECK:STDOUT: 'inst(FloatLiteralType)': concrete_constant(inst(FloatLiteralType))
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': concrete_constant(inst(ImplWitnessTablePlaceholder))
|
||||
// CHECK:STDOUT: 'inst(InstType)': concrete_constant(inst(InstType))
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': concrete_constant(inst(IntLiteralType))
|
||||
// CHECK:STDOUT: 'inst(NamespaceType)': concrete_constant(inst(NamespaceType))
|
||||
// CHECK:STDOUT: 'inst(SpecificFunctionType)': concrete_constant(inst(SpecificFunctionType))
|
||||
// CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType))
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType))
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
@@ -78,5 +76,5 @@
|
||||
// CHECK:STDOUT: imports: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
+209
-211
@@ -43,18 +43,18 @@ fn G(x: Cpp.X) {
|
||||
// CHECK:STDOUT: import_ir_inst00000001: {ir_id: import_ir(Cpp), clang_source_loc_id: clang_source_loc60000001}
|
||||
// CHECK:STDOUT: import_ir_inst00000002: {ir_id: import_ir(Cpp), clang_source_loc_id: clang_source_loc60000002}
|
||||
// CHECK:STDOUT: clang_decls:
|
||||
// CHECK:STDOUT: clang_decl_id60000000: {key: "<translation unit>", inst_id: inst60000011}
|
||||
// CHECK:STDOUT: clang_decl_id60000001: {key: "struct X {}", inst_id: inst60000013}
|
||||
// CHECK:STDOUT: clang_decl_id60000002: {key: "X * _Nonnull p", inst_id: inst60000022}
|
||||
// CHECK:STDOUT: clang_decl_id60000003: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: inst6000002D}
|
||||
// CHECK:STDOUT: clang_decl_id60000004: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: inst60000030}
|
||||
// CHECK:STDOUT: clang_decl_id60000005: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: inst6000003B}
|
||||
// CHECK:STDOUT: clang_decl_id60000006: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: inst60000043}
|
||||
// CHECK:STDOUT: clang_decl_id60000007: {key: "X * _Nonnull global", inst_id: inst6000004C}
|
||||
// CHECK:STDOUT: clang_decl_id60000000: {key: "<translation unit>", inst_id: inst60000010}
|
||||
// CHECK:STDOUT: clang_decl_id60000001: {key: "struct X {}", inst_id: inst60000012}
|
||||
// CHECK:STDOUT: clang_decl_id60000002: {key: "X * _Nonnull p", inst_id: inst60000021}
|
||||
// CHECK:STDOUT: clang_decl_id60000003: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: inst6000002C}
|
||||
// CHECK:STDOUT: clang_decl_id60000004: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: inst6000002F}
|
||||
// CHECK:STDOUT: clang_decl_id60000005: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: inst6000003A}
|
||||
// CHECK:STDOUT: clang_decl_id60000006: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: inst60000042}
|
||||
// CHECK:STDOUT: clang_decl_id60000007: {key: "X * _Nonnull global", inst_id: inst6000004B}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000011, name00000001: inst6000001C}}
|
||||
// CHECK:STDOUT: name_scope60000001: {inst: inst60000011, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000003: inst60000013, name00000004: inst6000002A, name00000005: inst6000004C}}
|
||||
// CHECK:STDOUT: name_scope60000002: {inst: inst60000013, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000010, name00000001: inst6000001B}}
|
||||
// CHECK:STDOUT: name_scope60000001: {inst: inst60000010, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000003: inst60000012, name00000004: inst60000029, name00000005: inst6000004B}}
|
||||
// CHECK:STDOUT: name_scope60000002: {inst: inst60000012, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name60000000: {name: name00000002, parent_scope: name_scope<none>, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: entity_name60000001: {name: name00000002, parent_scope: name_scope<none>, index: -1, is_template: 0}
|
||||
@@ -69,15 +69,15 @@ fn G(x: Cpp.X) {
|
||||
// CHECK:STDOUT: function60000003: {name: name00000004, parent_scope: name_scope60000001, call_params_id: inst_block6000000D}
|
||||
// CHECK:STDOUT: function60000004: {name: name00000007, parent_scope: name_scope60000001, call_params_id: inst_block60000012}
|
||||
// CHECK:STDOUT: classes:
|
||||
// CHECK:STDOUT: class60000000: {name: name00000003, parent_scope: name_scope60000001, self_type_id: type(inst60000014), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope60000002, body_block_id: inst_block6000000A, adapt_id: inst<none>, base_id: inst<none>, complete_type_witness_id: inst60000025, vtable_decl_id: inst<none>}}
|
||||
// CHECK:STDOUT: class60000000: {name: name00000003, parent_scope: name_scope60000001, self_type_id: type(inst60000013), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope60000002, body_block_id: inst_block6000000A, adapt_id: inst<none>, base_id: inst<none>, complete_type_witness_id: inst60000024, vtable_decl_id: inst<none>}}
|
||||
// CHECK:STDOUT: generics: {}
|
||||
// CHECK:STDOUT: specifics: {}
|
||||
// CHECK:STDOUT: struct_type_fields:
|
||||
// CHECK:STDOUT: struct_type_fields00000000: {}
|
||||
// CHECK:STDOUT: struct_type_fields60000001:
|
||||
// CHECK:STDOUT: 0: {name_id: name00000006, type_inst_id: inst60000020}
|
||||
// CHECK:STDOUT: 0: {name_id: name00000006, type_inst_id: inst6000001F}
|
||||
// CHECK:STDOUT: struct_type_fields60000002:
|
||||
// CHECK:STDOUT: 0: {name_id: name00000006, type_inst_id: inst60000020}
|
||||
// CHECK:STDOUT: 0: {name_id: name00000006, type_inst_id: inst6000001F}
|
||||
// CHECK:STDOUT: types:
|
||||
// CHECK:STDOUT: 'type(TypeType)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(TypeType)}
|
||||
@@ -85,30 +85,30 @@ fn G(x: Cpp.X) {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst6000001C)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst6000001D)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst6000001E)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst(WitnessType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: 'type(inst60000020)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: 'type(inst60000024)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000027)}
|
||||
// CHECK:STDOUT: 'type(inst60000027)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000027)}
|
||||
// CHECK:STDOUT: 'type(inst60000014)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000027)}
|
||||
// CHECK:STDOUT: 'type(inst60000029)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst6000002E)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst60000031)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst6000003C)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst60000044)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: 'type(inst6000001F)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: 'type(inst60000023)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000026)}
|
||||
// CHECK:STDOUT: 'type(inst60000026)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000026)}
|
||||
// CHECK:STDOUT: 'type(inst60000013)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000026)}
|
||||
// CHECK:STDOUT: 'type(inst60000028)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst6000002D)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst60000030)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst6000003B)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: 'type(inst60000043)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: 'inst(TypeType)': {kind: TypeType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(AutoType)': {kind: AutoType, type: type(TypeType)}
|
||||
@@ -118,86 +118,85 @@ fn G(x: Cpp.X) {
|
||||
// CHECK:STDOUT: 'inst(CppVoidType)': {kind: CppVoidType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)}
|
||||
// CHECK:STDOUT: 'inst(FloatLiteralType)': {kind: FloatLiteralType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': {kind: ImplWitnessTablePlaceholder, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(InstType)': {kind: InstType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': {kind: IntLiteralType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(NamespaceType)': {kind: NamespaceType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(SpecificFunctionType)': {kind: SpecificFunctionType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000010: {kind: ImportCppDecl}
|
||||
// CHECK:STDOUT: inst60000011: {kind: Namespace, arg0: name_scope60000001, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000012: {kind: NameRef, arg0: name00000000, arg1: inst60000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000013: {kind: ClassDecl, arg0: class60000000, arg1: inst_block<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: ClassType, arg0: class60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000015: {kind: NameRef, arg0: name00000003, arg1: inst60000013, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000016: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst6000001A, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000017: {kind: PatternType, arg0: inst60000014, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000018: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000017)}
|
||||
// CHECK:STDOUT: inst60000019: {kind: ValueParamPattern, arg0: inst60000018, arg1: call_param0, type: type(inst60000017)}
|
||||
// CHECK:STDOUT: inst6000001A: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst6000001B: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000015, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001C: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000008, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: inst6000001D: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001E: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001F: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: inst60000020: {kind: PointerType, arg0: inst60000014, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000021: {kind: UnboundElementType, arg0: inst60000014, arg1: inst60000020, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000022: {kind: FieldDecl, arg0: name00000006, arg1: element0, type: type(inst60000021)}
|
||||
// CHECK:STDOUT: inst60000023: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout60000001, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000024: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout60000001, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000000F: {kind: ImportCppDecl}
|
||||
// CHECK:STDOUT: inst60000010: {kind: Namespace, arg0: name_scope60000001, arg1: inst6000000F, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000011: {kind: NameRef, arg0: name00000000, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000012: {kind: ClassDecl, arg0: class60000000, arg1: inst_block<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: ClassType, arg0: class60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: NameRef, arg0: name00000003, arg1: inst60000012, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000015: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000019, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000016: {kind: PatternType, arg0: inst60000013, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000017: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000016)}
|
||||
// CHECK:STDOUT: inst60000018: {kind: ValueParamPattern, arg0: inst60000017, arg1: call_param0, type: type(inst60000016)}
|
||||
// CHECK:STDOUT: inst60000019: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst6000001A: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000014, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001B: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000008, type: type(inst6000001C)}
|
||||
// CHECK:STDOUT: inst6000001C: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001D: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001E: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000001C)}
|
||||
// CHECK:STDOUT: inst6000001F: {kind: PointerType, arg0: inst60000013, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000020: {kind: UnboundElementType, arg0: inst60000013, arg1: inst6000001F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000021: {kind: FieldDecl, arg0: name00000006, arg1: element0, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000022: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout60000001, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000023: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout60000001, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000024: {kind: CompleteTypeWitness, arg0: inst60000022, type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst60000025: {kind: CompleteTypeWitness, arg0: inst60000023, type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst60000026: {kind: CompleteTypeWitness, arg0: inst60000024, type: type(inst(WitnessType))}
|
||||
// CHECK:STDOUT: inst60000027: {kind: PointerType, arg0: inst60000024, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000028: {kind: NameRef, arg0: name00000000, arg1: inst60000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000029: {kind: CppOverloadSetType, arg0: cpp_overload_set60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000002A: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000029)}
|
||||
// CHECK:STDOUT: inst6000002B: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000029)}
|
||||
// CHECK:STDOUT: inst6000002C: {kind: NameRef, arg0: name00000004, arg1: inst6000002A, type: type(inst60000029)}
|
||||
// CHECK:STDOUT: inst6000002D: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst6000002E)}
|
||||
// CHECK:STDOUT: inst6000002E: {kind: FunctionType, arg0: function60000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000002F: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000002E)}
|
||||
// CHECK:STDOUT: inst60000030: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(inst60000031)}
|
||||
// CHECK:STDOUT: inst60000031: {kind: FunctionType, arg0: function60000002, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000032: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000031)}
|
||||
// CHECK:STDOUT: inst60000033: {kind: Call, arg0: inst60000030, arg1: inst_block_empty, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: inst60000034: {kind: NameRef, arg0: name00000000, arg1: inst60000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000035: {kind: NameRef, arg0: name00000004, arg1: inst6000002A, type: type(inst60000029)}
|
||||
// CHECK:STDOUT: inst60000036: {kind: NameRef, arg0: name00000002, arg1: inst60000016, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000037: {kind: ValueBinding, arg0: entity_name60000001, arg1: inst6000003A, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000038: {kind: ValueBindingPattern, arg0: entity_name60000001, type: type(inst60000017)}
|
||||
// CHECK:STDOUT: inst60000039: {kind: ValueParamPattern, arg0: inst60000038, arg1: call_param0, type: type(inst60000017)}
|
||||
// CHECK:STDOUT: inst6000003A: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst6000003B: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block6000000F, type: type(inst6000003C)}
|
||||
// CHECK:STDOUT: inst6000003C: {kind: FunctionType, arg0: function60000003, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000003D: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000003C)}
|
||||
// CHECK:STDOUT: inst6000003E: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000042, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst6000003F: {kind: PatternType, arg0: inst60000020, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000040: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(inst6000003F)}
|
||||
// CHECK:STDOUT: inst60000041: {kind: ValueParamPattern, arg0: inst60000040, arg1: call_param0, type: type(inst6000003F)}
|
||||
// CHECK:STDOUT: inst60000042: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000043: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block60000014, type: type(inst60000044)}
|
||||
// CHECK:STDOUT: inst60000044: {kind: FunctionType, arg0: function60000004, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000045: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000044)}
|
||||
// CHECK:STDOUT: inst60000046: {kind: ValueAsRef, arg0: inst60000036, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000047: {kind: AddrOf, arg0: inst60000046, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000048: {kind: Call, arg0: inst60000043, arg1: inst_block60000016, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: inst60000049: {kind: NameRef, arg0: name00000000, arg1: inst60000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000004A: {kind: NameRef, arg0: name00000004, arg1: inst6000002A, type: type(inst60000029)}
|
||||
// CHECK:STDOUT: inst6000004B: {kind: NameRef, arg0: name00000000, arg1: inst60000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000004C: {kind: VarStorage, arg0: inst6000004E, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst6000004D: {kind: RefBindingPattern, arg0: entity_name60000003, type: type(inst6000003F)}
|
||||
// CHECK:STDOUT: inst6000004E: {kind: VarPattern, arg0: inst6000004D, type: type(inst6000003F)}
|
||||
// CHECK:STDOUT: inst6000004F: {kind: NameBindingDecl, arg0: inst_block60000017}
|
||||
// CHECK:STDOUT: inst60000050: {kind: NameRef, arg0: name00000005, arg1: inst6000004C, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000051: {kind: AcquireValue, arg0: inst60000050, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000052: {kind: Deref, arg0: inst60000051, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000053: {kind: AcquireValue, arg0: inst60000052, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000054: {kind: ValueAsRef, arg0: inst60000053, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000055: {kind: AddrOf, arg0: inst60000054, type: type(inst60000020)}
|
||||
// CHECK:STDOUT: inst60000056: {kind: Call, arg0: inst60000043, arg1: inst_block60000019, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: inst60000057: {kind: Return}
|
||||
// CHECK:STDOUT: inst60000026: {kind: PointerType, arg0: inst60000023, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000027: {kind: NameRef, arg0: name00000000, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000028: {kind: CppOverloadSetType, arg0: cpp_overload_set60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000029: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000028)}
|
||||
// CHECK:STDOUT: inst6000002A: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000028)}
|
||||
// CHECK:STDOUT: inst6000002B: {kind: NameRef, arg0: name00000004, arg1: inst60000029, type: type(inst60000028)}
|
||||
// CHECK:STDOUT: inst6000002C: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst6000002D)}
|
||||
// CHECK:STDOUT: inst6000002D: {kind: FunctionType, arg0: function60000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000002E: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000002D)}
|
||||
// CHECK:STDOUT: inst6000002F: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(inst60000030)}
|
||||
// CHECK:STDOUT: inst60000030: {kind: FunctionType, arg0: function60000002, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000031: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000030)}
|
||||
// CHECK:STDOUT: inst60000032: {kind: Call, arg0: inst6000002F, arg1: inst_block_empty, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: inst60000033: {kind: NameRef, arg0: name00000000, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000034: {kind: NameRef, arg0: name00000004, arg1: inst60000029, type: type(inst60000028)}
|
||||
// CHECK:STDOUT: inst60000035: {kind: NameRef, arg0: name00000002, arg1: inst60000015, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000036: {kind: ValueBinding, arg0: entity_name60000001, arg1: inst60000039, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000037: {kind: ValueBindingPattern, arg0: entity_name60000001, type: type(inst60000016)}
|
||||
// CHECK:STDOUT: inst60000038: {kind: ValueParamPattern, arg0: inst60000037, arg1: call_param0, type: type(inst60000016)}
|
||||
// CHECK:STDOUT: inst60000039: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst6000003A: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block6000000F, type: type(inst6000003B)}
|
||||
// CHECK:STDOUT: inst6000003B: {kind: FunctionType, arg0: function60000003, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000003C: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000003B)}
|
||||
// CHECK:STDOUT: inst6000003D: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000041, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst6000003E: {kind: PatternType, arg0: inst6000001F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000003F: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(inst6000003E)}
|
||||
// CHECK:STDOUT: inst60000040: {kind: ValueParamPattern, arg0: inst6000003F, arg1: call_param0, type: type(inst6000003E)}
|
||||
// CHECK:STDOUT: inst60000041: {kind: ValueParam, arg0: call_param0, arg1: name00000002, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000042: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block60000014, type: type(inst60000043)}
|
||||
// CHECK:STDOUT: inst60000043: {kind: FunctionType, arg0: function60000004, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000044: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000043)}
|
||||
// CHECK:STDOUT: inst60000045: {kind: ValueAsRef, arg0: inst60000035, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000046: {kind: AddrOf, arg0: inst60000045, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000047: {kind: Call, arg0: inst60000042, arg1: inst_block60000016, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: inst60000048: {kind: NameRef, arg0: name00000000, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000049: {kind: NameRef, arg0: name00000004, arg1: inst60000029, type: type(inst60000028)}
|
||||
// CHECK:STDOUT: inst6000004A: {kind: NameRef, arg0: name00000000, arg1: inst60000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000004B: {kind: VarStorage, arg0: inst6000004D, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst6000004C: {kind: RefBindingPattern, arg0: entity_name60000003, type: type(inst6000003E)}
|
||||
// CHECK:STDOUT: inst6000004D: {kind: VarPattern, arg0: inst6000004C, type: type(inst6000003E)}
|
||||
// CHECK:STDOUT: inst6000004E: {kind: NameBindingDecl, arg0: inst_block60000017}
|
||||
// CHECK:STDOUT: inst6000004F: {kind: NameRef, arg0: name00000005, arg1: inst6000004B, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000050: {kind: AcquireValue, arg0: inst6000004F, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000051: {kind: Deref, arg0: inst60000050, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000052: {kind: AcquireValue, arg0: inst60000051, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000053: {kind: ValueAsRef, arg0: inst60000052, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000054: {kind: AddrOf, arg0: inst60000053, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000055: {kind: Call, arg0: inst60000042, arg1: inst_block60000019, type: type(inst6000001D)}
|
||||
// CHECK:STDOUT: inst60000056: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType))
|
||||
@@ -208,156 +207,155 @@ fn G(x: Cpp.X) {
|
||||
// CHECK:STDOUT: 'inst(CppVoidType)': concrete_constant(inst(CppVoidType))
|
||||
// CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst))
|
||||
// CHECK:STDOUT: 'inst(FloatLiteralType)': concrete_constant(inst(FloatLiteralType))
|
||||
// CHECK:STDOUT: 'inst(ImplWitnessTablePlaceholder)': concrete_constant(inst(ImplWitnessTablePlaceholder))
|
||||
// CHECK:STDOUT: 'inst(InstType)': concrete_constant(inst(InstType))
|
||||
// CHECK:STDOUT: 'inst(IntLiteralType)': concrete_constant(inst(IntLiteralType))
|
||||
// CHECK:STDOUT: 'inst(NamespaceType)': concrete_constant(inst(NamespaceType))
|
||||
// CHECK:STDOUT: 'inst(SpecificFunctionType)': concrete_constant(inst(SpecificFunctionType))
|
||||
// CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType))
|
||||
// CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType))
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000012: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000013: concrete_constant(inst60000014)
|
||||
// CHECK:STDOUT: inst60000014: concrete_constant(inst60000014)
|
||||
// CHECK:STDOUT: inst60000015: concrete_constant(inst60000014)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000011: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000012: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst60000014: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst60000016: concrete_constant(inst60000016)
|
||||
// CHECK:STDOUT: inst60000017: concrete_constant(inst60000017)
|
||||
// CHECK:STDOUT: inst60000018: concrete_constant(inst60000018)
|
||||
// CHECK:STDOUT: inst60000019: concrete_constant(inst60000019)
|
||||
// CHECK:STDOUT: inst6000001B: concrete_constant(inst60000014)
|
||||
// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000001F)
|
||||
// CHECK:STDOUT: inst6000001A: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst6000001B: concrete_constant(inst6000001E)
|
||||
// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000001C)
|
||||
// CHECK:STDOUT: inst6000001D: concrete_constant(inst6000001D)
|
||||
// CHECK:STDOUT: inst6000001E: concrete_constant(inst6000001E)
|
||||
// CHECK:STDOUT: inst6000001F: concrete_constant(inst6000001F)
|
||||
// CHECK:STDOUT: inst60000020: concrete_constant(inst60000020)
|
||||
// CHECK:STDOUT: inst60000021: concrete_constant(inst60000021)
|
||||
// CHECK:STDOUT: inst60000022: concrete_constant(inst60000022)
|
||||
// CHECK:STDOUT: inst60000023: concrete_constant(inst60000024)
|
||||
// CHECK:STDOUT: inst60000024: concrete_constant(inst60000024)
|
||||
// CHECK:STDOUT: inst60000025: concrete_constant(inst60000026)
|
||||
// CHECK:STDOUT: inst60000022: concrete_constant(inst60000023)
|
||||
// CHECK:STDOUT: inst60000023: concrete_constant(inst60000023)
|
||||
// CHECK:STDOUT: inst60000024: concrete_constant(inst60000025)
|
||||
// CHECK:STDOUT: inst60000025: concrete_constant(inst60000025)
|
||||
// CHECK:STDOUT: inst60000026: concrete_constant(inst60000026)
|
||||
// CHECK:STDOUT: inst60000027: concrete_constant(inst60000027)
|
||||
// CHECK:STDOUT: inst60000028: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000029: concrete_constant(inst60000029)
|
||||
// CHECK:STDOUT: inst6000002A: concrete_constant(inst6000002B)
|
||||
// CHECK:STDOUT: inst6000002B: concrete_constant(inst6000002B)
|
||||
// CHECK:STDOUT: inst6000002C: concrete_constant(inst6000002B)
|
||||
// CHECK:STDOUT: inst6000002D: concrete_constant(inst6000002F)
|
||||
// CHECK:STDOUT: inst60000027: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000028: concrete_constant(inst60000028)
|
||||
// CHECK:STDOUT: inst60000029: concrete_constant(inst6000002A)
|
||||
// CHECK:STDOUT: inst6000002A: concrete_constant(inst6000002A)
|
||||
// CHECK:STDOUT: inst6000002B: concrete_constant(inst6000002A)
|
||||
// CHECK:STDOUT: inst6000002C: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst6000002D: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst6000002E: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst6000002F: concrete_constant(inst6000002F)
|
||||
// CHECK:STDOUT: inst60000030: concrete_constant(inst60000032)
|
||||
// CHECK:STDOUT: inst6000002F: concrete_constant(inst60000031)
|
||||
// CHECK:STDOUT: inst60000030: concrete_constant(inst60000030)
|
||||
// CHECK:STDOUT: inst60000031: concrete_constant(inst60000031)
|
||||
// CHECK:STDOUT: inst60000032: concrete_constant(inst60000032)
|
||||
// CHECK:STDOUT: inst60000034: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000035: concrete_constant(inst6000002B)
|
||||
// CHECK:STDOUT: inst60000033: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000034: concrete_constant(inst6000002A)
|
||||
// CHECK:STDOUT: inst60000037: concrete_constant(inst60000037)
|
||||
// CHECK:STDOUT: inst60000038: concrete_constant(inst60000038)
|
||||
// CHECK:STDOUT: inst60000039: concrete_constant(inst60000039)
|
||||
// CHECK:STDOUT: inst6000003B: concrete_constant(inst6000003D)
|
||||
// CHECK:STDOUT: inst6000003A: concrete_constant(inst6000003C)
|
||||
// CHECK:STDOUT: inst6000003B: concrete_constant(inst6000003B)
|
||||
// CHECK:STDOUT: inst6000003C: concrete_constant(inst6000003C)
|
||||
// CHECK:STDOUT: inst6000003D: concrete_constant(inst6000003D)
|
||||
// CHECK:STDOUT: inst6000003E: concrete_constant(inst6000003E)
|
||||
// CHECK:STDOUT: inst6000003F: concrete_constant(inst6000003F)
|
||||
// CHECK:STDOUT: inst60000040: concrete_constant(inst60000040)
|
||||
// CHECK:STDOUT: inst60000041: concrete_constant(inst60000041)
|
||||
// CHECK:STDOUT: inst60000043: concrete_constant(inst60000045)
|
||||
// CHECK:STDOUT: inst60000042: concrete_constant(inst60000044)
|
||||
// CHECK:STDOUT: inst60000043: concrete_constant(inst60000043)
|
||||
// CHECK:STDOUT: inst60000044: concrete_constant(inst60000044)
|
||||
// CHECK:STDOUT: inst60000045: concrete_constant(inst60000045)
|
||||
// CHECK:STDOUT: inst60000049: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst6000004A: concrete_constant(inst6000002B)
|
||||
// CHECK:STDOUT: inst6000004B: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000048: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000049: concrete_constant(inst6000002A)
|
||||
// CHECK:STDOUT: inst6000004A: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst6000004B: concrete_constant(inst6000004B)
|
||||
// CHECK:STDOUT: inst6000004C: concrete_constant(inst6000004C)
|
||||
// CHECK:STDOUT: inst6000004D: concrete_constant(inst6000004D)
|
||||
// CHECK:STDOUT: inst6000004E: concrete_constant(inst6000004E)
|
||||
// CHECK:STDOUT: inst60000050: concrete_constant(inst6000004C)
|
||||
// CHECK:STDOUT: inst6000004F: concrete_constant(inst6000004B)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst6000001C
|
||||
// CHECK:STDOUT: 0: inst6000001B
|
||||
// CHECK:STDOUT: imports:
|
||||
// CHECK:STDOUT: 0: inst60000011
|
||||
// CHECK:STDOUT: 1: inst60000013
|
||||
// CHECK:STDOUT: 2: inst6000002A
|
||||
// CHECK:STDOUT: 3: inst6000002D
|
||||
// CHECK:STDOUT: 4: inst60000030
|
||||
// CHECK:STDOUT: 5: inst6000003B
|
||||
// CHECK:STDOUT: 6: inst60000043
|
||||
// CHECK:STDOUT: 7: inst6000004F
|
||||
// CHECK:STDOUT: 8: inst6000004C
|
||||
// CHECK:STDOUT: 0: inst60000010
|
||||
// CHECK:STDOUT: 1: inst60000012
|
||||
// CHECK:STDOUT: 2: inst60000029
|
||||
// CHECK:STDOUT: 3: inst6000002C
|
||||
// CHECK:STDOUT: 4: inst6000002F
|
||||
// CHECK:STDOUT: 5: inst6000003A
|
||||
// CHECK:STDOUT: 6: inst60000042
|
||||
// CHECK:STDOUT: 7: inst6000004E
|
||||
// CHECK:STDOUT: 8: inst6000004B
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004:
|
||||
// CHECK:STDOUT: 0: inst60000012
|
||||
// CHECK:STDOUT: 1: inst60000015
|
||||
// CHECK:STDOUT: 0: inst60000011
|
||||
// CHECK:STDOUT: 1: inst60000014
|
||||
// CHECK:STDOUT: inst_block60000005:
|
||||
// CHECK:STDOUT: 0: inst60000019
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst6000001A
|
||||
// CHECK:STDOUT: inst_block60000007:
|
||||
// CHECK:STDOUT: 0: inst60000018
|
||||
// CHECK:STDOUT: 1: inst60000019
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst60000019
|
||||
// CHECK:STDOUT: inst_block60000007:
|
||||
// CHECK:STDOUT: 0: inst60000017
|
||||
// CHECK:STDOUT: 1: inst60000018
|
||||
// CHECK:STDOUT: inst_block60000008:
|
||||
// CHECK:STDOUT: 0: inst6000001A
|
||||
// CHECK:STDOUT: 1: inst6000001B
|
||||
// CHECK:STDOUT: 2: inst60000016
|
||||
// CHECK:STDOUT: 0: inst60000019
|
||||
// CHECK:STDOUT: 1: inst6000001A
|
||||
// CHECK:STDOUT: 2: inst60000015
|
||||
// CHECK:STDOUT: inst_block60000009:
|
||||
// CHECK:STDOUT: 0: inst60000028
|
||||
// CHECK:STDOUT: 1: inst6000002C
|
||||
// CHECK:STDOUT: 2: inst60000033
|
||||
// CHECK:STDOUT: 3: inst60000034
|
||||
// CHECK:STDOUT: 4: inst60000035
|
||||
// CHECK:STDOUT: 5: inst60000036
|
||||
// CHECK:STDOUT: 6: inst60000046
|
||||
// CHECK:STDOUT: 7: inst60000047
|
||||
// CHECK:STDOUT: 8: inst60000048
|
||||
// CHECK:STDOUT: 9: inst60000049
|
||||
// CHECK:STDOUT: 10: inst6000004A
|
||||
// CHECK:STDOUT: 11: inst6000004B
|
||||
// CHECK:STDOUT: 12: inst60000050
|
||||
// CHECK:STDOUT: 13: inst60000051
|
||||
// CHECK:STDOUT: 14: inst60000052
|
||||
// CHECK:STDOUT: 15: inst60000053
|
||||
// CHECK:STDOUT: 16: inst60000054
|
||||
// CHECK:STDOUT: 17: inst60000055
|
||||
// CHECK:STDOUT: 18: inst60000056
|
||||
// CHECK:STDOUT: 19: inst60000057
|
||||
// CHECK:STDOUT: 0: inst60000027
|
||||
// CHECK:STDOUT: 1: inst6000002B
|
||||
// CHECK:STDOUT: 2: inst60000032
|
||||
// CHECK:STDOUT: 3: inst60000033
|
||||
// CHECK:STDOUT: 4: inst60000034
|
||||
// CHECK:STDOUT: 5: inst60000035
|
||||
// CHECK:STDOUT: 6: inst60000045
|
||||
// CHECK:STDOUT: 7: inst60000046
|
||||
// CHECK:STDOUT: 8: inst60000047
|
||||
// CHECK:STDOUT: 9: inst60000048
|
||||
// CHECK:STDOUT: 10: inst60000049
|
||||
// CHECK:STDOUT: 11: inst6000004A
|
||||
// CHECK:STDOUT: 12: inst6000004F
|
||||
// CHECK:STDOUT: 13: inst60000050
|
||||
// CHECK:STDOUT: 14: inst60000051
|
||||
// CHECK:STDOUT: 15: inst60000052
|
||||
// CHECK:STDOUT: 16: inst60000053
|
||||
// CHECK:STDOUT: 17: inst60000054
|
||||
// CHECK:STDOUT: 18: inst60000055
|
||||
// CHECK:STDOUT: 19: inst60000056
|
||||
// CHECK:STDOUT: inst_block6000000A:
|
||||
// CHECK:STDOUT: 0: inst60000022
|
||||
// CHECK:STDOUT: 1: inst60000023
|
||||
// CHECK:STDOUT: 2: inst60000025
|
||||
// CHECK:STDOUT: 0: inst60000021
|
||||
// CHECK:STDOUT: 1: inst60000022
|
||||
// CHECK:STDOUT: 2: inst60000024
|
||||
// CHECK:STDOUT: inst_block6000000B: {}
|
||||
// CHECK:STDOUT: inst_block6000000C:
|
||||
// CHECK:STDOUT: 0: inst60000039
|
||||
// CHECK:STDOUT: inst_block6000000D:
|
||||
// CHECK:STDOUT: 0: inst6000003A
|
||||
// CHECK:STDOUT: inst_block6000000E:
|
||||
// CHECK:STDOUT: 0: inst60000038
|
||||
// CHECK:STDOUT: 1: inst60000039
|
||||
// CHECK:STDOUT: inst_block6000000D:
|
||||
// CHECK:STDOUT: 0: inst60000039
|
||||
// CHECK:STDOUT: inst_block6000000E:
|
||||
// CHECK:STDOUT: 0: inst60000037
|
||||
// CHECK:STDOUT: 1: inst60000038
|
||||
// CHECK:STDOUT: inst_block6000000F:
|
||||
// CHECK:STDOUT: 0: inst6000003A
|
||||
// CHECK:STDOUT: 1: inst60000037
|
||||
// CHECK:STDOUT: 0: inst60000039
|
||||
// CHECK:STDOUT: 1: inst60000036
|
||||
// CHECK:STDOUT: inst_block60000010: {}
|
||||
// CHECK:STDOUT: inst_block60000011:
|
||||
// CHECK:STDOUT: 0: inst60000041
|
||||
// CHECK:STDOUT: inst_block60000012:
|
||||
// CHECK:STDOUT: 0: inst60000042
|
||||
// CHECK:STDOUT: inst_block60000013:
|
||||
// CHECK:STDOUT: 0: inst60000040
|
||||
// CHECK:STDOUT: 1: inst60000041
|
||||
// CHECK:STDOUT: inst_block60000012:
|
||||
// CHECK:STDOUT: 0: inst60000041
|
||||
// CHECK:STDOUT: inst_block60000013:
|
||||
// CHECK:STDOUT: 0: inst6000003F
|
||||
// CHECK:STDOUT: 1: inst60000040
|
||||
// CHECK:STDOUT: inst_block60000014:
|
||||
// CHECK:STDOUT: 0: inst60000042
|
||||
// CHECK:STDOUT: 1: inst6000003E
|
||||
// CHECK:STDOUT: 0: inst60000041
|
||||
// CHECK:STDOUT: 1: inst6000003D
|
||||
// CHECK:STDOUT: inst_block60000015:
|
||||
// CHECK:STDOUT: 0: inst60000036
|
||||
// CHECK:STDOUT: 0: inst60000035
|
||||
// CHECK:STDOUT: inst_block60000016:
|
||||
// CHECK:STDOUT: 0: inst60000047
|
||||
// CHECK:STDOUT: 0: inst60000046
|
||||
// CHECK:STDOUT: inst_block60000017:
|
||||
// CHECK:STDOUT: 0: inst6000004D
|
||||
// CHECK:STDOUT: 1: inst6000004E
|
||||
// CHECK:STDOUT: 0: inst6000004C
|
||||
// CHECK:STDOUT: 1: inst6000004D
|
||||
// CHECK:STDOUT: inst_block60000018:
|
||||
// CHECK:STDOUT: 0: inst60000053
|
||||
// CHECK:STDOUT: 0: inst60000052
|
||||
// CHECK:STDOUT: inst_block60000019:
|
||||
// CHECK:STDOUT: 0: inst60000055
|
||||
// CHECK:STDOUT: 0: inst60000054
|
||||
// CHECK:STDOUT: inst_block6000001A:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst60000010
|
||||
// CHECK:STDOUT: 2: inst6000001C
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst6000000F
|
||||
// CHECK:STDOUT: 2: inst6000001B
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
+60
-60
@@ -36,7 +36,7 @@ fn B() {
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000010}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst6000000F}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
// CHECK:STDOUT: functions:
|
||||
@@ -53,37 +53,37 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst60000010)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: 'type(inst60000011)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)}
|
||||
// CHECK:STDOUT: 'type(inst60000012)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000010: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: Return}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000000F: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000010: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst6000000F: concrete_constant(inst60000012)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000012: concrete_constant(inst60000012)
|
||||
// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst60000010
|
||||
// CHECK:STDOUT: 0: inst6000000F
|
||||
// CHECK:STDOUT: imports: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004: {}
|
||||
// CHECK:STDOUT: inst_block60000005:
|
||||
// CHECK:STDOUT: 0: inst60000014
|
||||
// CHECK:STDOUT: 0: inst60000013
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst60000010
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst6000000F
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: ---
|
||||
// CHECK:STDOUT: filename: b.carbon
|
||||
@@ -91,14 +91,14 @@ fn B() {
|
||||
// CHECK:STDOUT: import_irs:
|
||||
// CHECK:STDOUT: 'import_ir(ApiForImpl)': {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: 'import_ir(Cpp)': {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir50000002: {decl_id: inst50000010, is_export: false}
|
||||
// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000F, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts:
|
||||
// CHECK:STDOUT: import_ir_inst00000000: {ir_id: import_ir50000002, inst_id: inst60000010}
|
||||
// CHECK:STDOUT: import_ir_inst00000001: {ir_id: import_ir50000002, inst_id: inst60000010}
|
||||
// CHECK:STDOUT: import_ir_inst00000000: {ir_id: import_ir50000002, inst_id: inst6000000F}
|
||||
// CHECK:STDOUT: import_ir_inst00000001: {ir_id: import_ir50000002, inst_id: inst6000000F}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000001: inst50000011, name00000000: inst50000012}}
|
||||
// CHECK:STDOUT: name_scope50000001: {inst: inst50000011, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000001: inst50000017}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000001: inst50000010, name00000000: inst50000011}}
|
||||
// CHECK:STDOUT: name_scope50000001: {inst: inst50000010, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000001: inst50000016}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name50000000: {name: name00000001, parent_scope: name_scope50000001, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
@@ -117,58 +117,58 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst50000012)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: 'type(inst50000013)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: 'type(inst50000014)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000010: {kind: ImportDecl, arg0: name00000001}
|
||||
// CHECK:STDOUT: inst50000011: {kind: Namespace, arg0: name_scope50000001, arg1: inst50000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000012: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst50000013: {kind: FunctionType, arg0: function50000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000014: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000015: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst50000016: {kind: NameRef, arg0: name00000001, arg1: inst50000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000017: {kind: ImportRefLoaded, arg0: import_ir_inst00000000, arg1: entity_name50000000, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst50000018: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst50000019: {kind: FunctionType, arg0: function50000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst5000001A: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst5000001B: {kind: NameRef, arg0: name00000001, arg1: inst50000017, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst5000001C: {kind: Call, arg0: inst5000001B, arg1: inst_block_empty, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: inst5000001D: {kind: Return}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst5000000F: {kind: ImportDecl, arg0: name00000001}
|
||||
// CHECK:STDOUT: inst50000010: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000F, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000011: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000012)}
|
||||
// CHECK:STDOUT: inst50000012: {kind: FunctionType, arg0: function50000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000013: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000014: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000012)}
|
||||
// CHECK:STDOUT: inst50000015: {kind: NameRef, arg0: name00000001, arg1: inst50000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000016: {kind: ImportRefLoaded, arg0: import_ir_inst00000000, arg1: entity_name50000000, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst50000017: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst50000018: {kind: FunctionType, arg0: function50000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000019: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst5000001A: {kind: NameRef, arg0: name00000001, arg1: inst50000016, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst5000001B: {kind: Call, arg0: inst5000001A, arg1: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst5000001C: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst50000011: concrete_constant(inst50000011)
|
||||
// CHECK:STDOUT: inst50000012: concrete_constant(inst50000015)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst50000010: concrete_constant(inst50000010)
|
||||
// CHECK:STDOUT: inst50000011: concrete_constant(inst50000014)
|
||||
// CHECK:STDOUT: inst50000012: concrete_constant(inst50000012)
|
||||
// CHECK:STDOUT: inst50000013: concrete_constant(inst50000013)
|
||||
// CHECK:STDOUT: inst50000014: concrete_constant(inst50000014)
|
||||
// CHECK:STDOUT: inst50000015: concrete_constant(inst50000015)
|
||||
// CHECK:STDOUT: inst50000016: concrete_constant(inst50000011)
|
||||
// CHECK:STDOUT: inst50000017: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst50000018: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst50000015: concrete_constant(inst50000010)
|
||||
// CHECK:STDOUT: inst50000016: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst50000017: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst50000018: concrete_constant(inst50000018)
|
||||
// CHECK:STDOUT: inst50000019: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst5000001A: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst5000001B: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst5000001A: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst50000012
|
||||
// CHECK:STDOUT: imports:
|
||||
// CHECK:STDOUT: 0: inst50000011
|
||||
// CHECK:STDOUT: 1: inst50000017
|
||||
// CHECK:STDOUT: 2: inst50000018
|
||||
// CHECK:STDOUT: imports:
|
||||
// CHECK:STDOUT: 0: inst50000010
|
||||
// CHECK:STDOUT: 1: inst50000016
|
||||
// CHECK:STDOUT: 2: inst50000017
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block50000004: {}
|
||||
// CHECK:STDOUT: inst_block50000005:
|
||||
// CHECK:STDOUT: 0: inst50000016
|
||||
// CHECK:STDOUT: 1: inst5000001B
|
||||
// CHECK:STDOUT: 2: inst5000001C
|
||||
// CHECK:STDOUT: 3: inst5000001D
|
||||
// CHECK:STDOUT: 0: inst50000015
|
||||
// CHECK:STDOUT: 1: inst5000001A
|
||||
// CHECK:STDOUT: 2: inst5000001B
|
||||
// CHECK:STDOUT: 3: inst5000001C
|
||||
// CHECK:STDOUT: inst_block50000006:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst50000010
|
||||
// CHECK:STDOUT: 2: inst50000012
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst5000000F
|
||||
// CHECK:STDOUT: 2: inst50000011
|
||||
// CHECK:STDOUT: ...
|
||||
|
||||
+60
-60
@@ -36,7 +36,7 @@ fn B() {
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000010}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst6000000F}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
// CHECK:STDOUT: functions:
|
||||
@@ -53,37 +53,37 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst60000010)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: 'type(inst60000011)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)}
|
||||
// CHECK:STDOUT: 'type(inst60000012)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000010: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000011)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: Return}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000000F: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000010: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst6000000F: concrete_constant(inst60000012)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011)
|
||||
// CHECK:STDOUT: inst60000012: concrete_constant(inst60000012)
|
||||
// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst60000010
|
||||
// CHECK:STDOUT: 0: inst6000000F
|
||||
// CHECK:STDOUT: imports: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004: {}
|
||||
// CHECK:STDOUT: inst_block60000005:
|
||||
// CHECK:STDOUT: 0: inst60000014
|
||||
// CHECK:STDOUT: 0: inst60000013
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst60000010
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst6000000F
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: --- a.carbon
|
||||
// CHECK:STDOUT:
|
||||
@@ -110,14 +110,14 @@ fn B() {
|
||||
// CHECK:STDOUT: import_irs:
|
||||
// CHECK:STDOUT: 'import_ir(ApiForImpl)': {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: 'import_ir(Cpp)': {decl_id: inst<none>, is_export: false}
|
||||
// CHECK:STDOUT: import_ir50000002: {decl_id: inst50000010, is_export: false}
|
||||
// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000F, is_export: false}
|
||||
// CHECK:STDOUT: import_ir_insts:
|
||||
// CHECK:STDOUT: import_ir_inst00000000: {ir_id: import_ir50000002, inst_id: inst60000010}
|
||||
// CHECK:STDOUT: import_ir_inst00000001: {ir_id: import_ir50000002, inst_id: inst60000010}
|
||||
// CHECK:STDOUT: import_ir_inst00000000: {ir_id: import_ir50000002, inst_id: inst6000000F}
|
||||
// CHECK:STDOUT: import_ir_inst00000001: {ir_id: import_ir50000002, inst_id: inst6000000F}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000001: inst50000011, name00000000: inst50000012}}
|
||||
// CHECK:STDOUT: name_scope50000001: {inst: inst50000011, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000001: inst50000017}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000001: inst50000010, name00000000: inst50000011}}
|
||||
// CHECK:STDOUT: name_scope50000001: {inst: inst50000010, parent_scope: name_scope00000000, has_error: false, extended_scopes: [], names: {name00000001: inst50000016}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name50000000: {name: name00000001, parent_scope: name_scope50000001, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
@@ -136,60 +136,60 @@ fn B() {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst50000012)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: 'type(inst50000013)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: 'type(inst50000014)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000010: {kind: ImportDecl, arg0: name00000001}
|
||||
// CHECK:STDOUT: inst50000011: {kind: Namespace, arg0: name_scope50000001, arg1: inst50000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000012: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst50000013: {kind: FunctionType, arg0: function50000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000014: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000015: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst50000016: {kind: NameRef, arg0: name00000001, arg1: inst50000011, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000017: {kind: ImportRefLoaded, arg0: import_ir_inst00000000, arg1: entity_name50000000, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst50000018: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst50000019: {kind: FunctionType, arg0: function50000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst5000001A: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst5000001B: {kind: NameRef, arg0: name00000001, arg1: inst50000017, type: type(inst50000019)}
|
||||
// CHECK:STDOUT: inst5000001C: {kind: Call, arg0: inst5000001B, arg1: inst_block_empty, type: type(inst50000014)}
|
||||
// CHECK:STDOUT: inst5000001D: {kind: Return}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst5000000F: {kind: ImportDecl, arg0: name00000001}
|
||||
// CHECK:STDOUT: inst50000010: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000F, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000011: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000012)}
|
||||
// CHECK:STDOUT: inst50000012: {kind: FunctionType, arg0: function50000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000013: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000014: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000012)}
|
||||
// CHECK:STDOUT: inst50000015: {kind: NameRef, arg0: name00000001, arg1: inst50000010, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst50000016: {kind: ImportRefLoaded, arg0: import_ir_inst00000000, arg1: entity_name50000000, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst50000017: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst50000018: {kind: FunctionType, arg0: function50000001, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst50000019: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst5000001A: {kind: NameRef, arg0: name00000001, arg1: inst50000016, type: type(inst50000018)}
|
||||
// CHECK:STDOUT: inst5000001B: {kind: Call, arg0: inst5000001A, arg1: inst_block_empty, type: type(inst50000013)}
|
||||
// CHECK:STDOUT: inst5000001C: {kind: Return}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst50000011: concrete_constant(inst50000011)
|
||||
// CHECK:STDOUT: inst50000012: concrete_constant(inst50000015)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst50000010: concrete_constant(inst50000010)
|
||||
// CHECK:STDOUT: inst50000011: concrete_constant(inst50000014)
|
||||
// CHECK:STDOUT: inst50000012: concrete_constant(inst50000012)
|
||||
// CHECK:STDOUT: inst50000013: concrete_constant(inst50000013)
|
||||
// CHECK:STDOUT: inst50000014: concrete_constant(inst50000014)
|
||||
// CHECK:STDOUT: inst50000015: concrete_constant(inst50000015)
|
||||
// CHECK:STDOUT: inst50000016: concrete_constant(inst50000011)
|
||||
// CHECK:STDOUT: inst50000017: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst50000018: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst50000015: concrete_constant(inst50000010)
|
||||
// CHECK:STDOUT: inst50000016: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst50000017: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst50000018: concrete_constant(inst50000018)
|
||||
// CHECK:STDOUT: inst50000019: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: inst5000001A: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst5000001B: concrete_constant(inst5000001A)
|
||||
// CHECK:STDOUT: inst5000001A: concrete_constant(inst50000019)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst50000012
|
||||
// CHECK:STDOUT: imports:
|
||||
// CHECK:STDOUT: 0: inst50000011
|
||||
// CHECK:STDOUT: 1: inst50000017
|
||||
// CHECK:STDOUT: 2: inst50000018
|
||||
// CHECK:STDOUT: imports:
|
||||
// CHECK:STDOUT: 0: inst50000010
|
||||
// CHECK:STDOUT: 1: inst50000016
|
||||
// CHECK:STDOUT: 2: inst50000017
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block50000004: {}
|
||||
// CHECK:STDOUT: inst_block50000005:
|
||||
// CHECK:STDOUT: 0: inst50000016
|
||||
// CHECK:STDOUT: 1: inst5000001B
|
||||
// CHECK:STDOUT: 2: inst5000001C
|
||||
// CHECK:STDOUT: 3: inst5000001D
|
||||
// CHECK:STDOUT: 0: inst50000015
|
||||
// CHECK:STDOUT: 1: inst5000001A
|
||||
// CHECK:STDOUT: 2: inst5000001B
|
||||
// CHECK:STDOUT: 3: inst5000001C
|
||||
// CHECK:STDOUT: inst_block50000006:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst50000010
|
||||
// CHECK:STDOUT: 2: inst50000012
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst5000000F
|
||||
// CHECK:STDOUT: 2: inst50000011
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: --- b.carbon
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+1593
-1593
File diff suppressed because it is too large
Load Diff
+122
-122
@@ -26,12 +26,12 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000026}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {name00000000: inst60000025}}
|
||||
// CHECK:STDOUT: entity_names:
|
||||
// CHECK:STDOUT: entity_name60000000: {name: name00000001, parent_scope: name_scope<none>, index: -1, is_template: 0}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
// CHECK:STDOUT: functions:
|
||||
// CHECK:STDOUT: function60000000: {name: name00000000, parent_scope: name_scope00000000, call_params_id: inst_block60000009, return_slot_pattern: inst60000021, body: [inst_block6000000C]}
|
||||
// CHECK:STDOUT: function60000000: {name: name00000000, parent_scope: name_scope00000000, call_params_id: inst_block60000009, return_slot_pattern: inst60000020, body: [inst_block6000000C]}
|
||||
// CHECK:STDOUT: classes: {}
|
||||
// CHECK:STDOUT: generics: {}
|
||||
// CHECK:STDOUT: specifics: {}
|
||||
@@ -44,150 +44,150 @@ fn Foo(n: ()) -> ((), ()) {
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)}
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: 'type(inst60000010)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: 'type(inst60000019)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000001B)}
|
||||
// CHECK:STDOUT: 'type(inst6000001B)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001B)}
|
||||
// CHECK:STDOUT: 'type(inst60000027)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: 'type(inst6000000F)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: 'type(inst60000018)':
|
||||
// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000001A)}
|
||||
// CHECK:STDOUT: 'type(inst6000001A)':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001A)}
|
||||
// CHECK:STDOUT: 'type(inst60000026)':
|
||||
// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst60000010: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: Converted, arg0: inst60000011, arg1: inst60000010, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000022, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: PatternType, arg0: inst60000010, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000015: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000016: {kind: ValueParamPattern, arg0: inst60000015, arg1: call_param0, type: type(inst60000014)}
|
||||
// CHECK:STDOUT: inst60000017: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000018: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000019: {kind: TupleType, arg0: inst_block60000007, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001A: {kind: TupleLiteral, arg0: inst_block60000006, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst6000001B: {kind: PointerType, arg0: inst60000019, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001C: {kind: Converted, arg0: inst60000017, arg1: inst60000010, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001D: {kind: Converted, arg0: inst60000018, arg1: inst60000010, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001E: {kind: Converted, arg0: inst6000001A, arg1: inst60000019, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001F: {kind: PatternType, arg0: inst60000019, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000020: {kind: ReturnSlotPattern, arg0: inst6000001E, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000021: {kind: OutParamPattern, arg0: inst60000020, arg1: call_param1, type: type(inst6000001F)}
|
||||
// CHECK:STDOUT: inst60000022: {kind: ValueParam, arg0: call_param0, arg1: name00000001, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000023: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000012, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000024: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst60000025: {kind: ReturnSlot, arg0: inst60000019, arg1: inst60000024, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst60000026: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000B, type: type(inst60000027)}
|
||||
// CHECK:STDOUT: inst60000027: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000028: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000027)}
|
||||
// CHECK:STDOUT: inst60000029: {kind: NameRef, arg0: name00000001, arg1: inst60000013, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst6000002A: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst6000002B: {kind: TupleLiteral, arg0: inst_block6000000D, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst6000002C: {kind: TupleAccess, arg0: inst60000025, arg1: element0, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst6000002D: {kind: TupleInit, arg0: inst_block6000000E, arg1: inst6000002C, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst6000002E: {kind: TupleValue, arg0: inst_block_empty, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst6000002F: {kind: Converted, arg0: inst60000029, arg1: inst6000002D, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000030: {kind: TupleAccess, arg0: inst60000025, arg1: element1, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000031: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000030, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000032: {kind: Converted, arg0: inst6000002A, arg1: inst60000031, type: type(inst60000010)}
|
||||
// CHECK:STDOUT: inst60000033: {kind: TupleInit, arg0: inst_block6000000F, arg1: inst60000025, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst60000034: {kind: TupleValue, arg0: inst_block60000010, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst60000035: {kind: Converted, arg0: inst6000002B, arg1: inst60000033, type: type(inst60000019)}
|
||||
// CHECK:STDOUT: inst60000036: {kind: ReturnExpr, arg0: inst60000035, arg1: inst60000025}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst6000000F: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000010: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000011: {kind: Converted, arg0: inst60000010, arg1: inst6000000F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000012: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000021, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000013: {kind: PatternType, arg0: inst6000000F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000014: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000015: {kind: ValueParamPattern, arg0: inst60000014, arg1: call_param0, type: type(inst60000013)}
|
||||
// CHECK:STDOUT: inst60000016: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000017: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000018: {kind: TupleType, arg0: inst_block60000007, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000019: {kind: TupleLiteral, arg0: inst_block60000006, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst6000001A: {kind: PointerType, arg0: inst60000018, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001B: {kind: Converted, arg0: inst60000016, arg1: inst6000000F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001C: {kind: Converted, arg0: inst60000017, arg1: inst6000000F, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001D: {kind: Converted, arg0: inst60000019, arg1: inst60000018, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001E: {kind: PatternType, arg0: inst60000018, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst6000001F: {kind: ReturnSlotPattern, arg0: inst6000001D, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: inst60000020: {kind: OutParamPattern, arg0: inst6000001F, arg1: call_param1, type: type(inst6000001E)}
|
||||
// CHECK:STDOUT: inst60000021: {kind: ValueParam, arg0: call_param0, arg1: name00000001, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000022: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000011, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000023: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst60000024: {kind: ReturnSlot, arg0: inst60000018, arg1: inst60000023, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst60000025: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000B, type: type(inst60000026)}
|
||||
// CHECK:STDOUT: inst60000026: {kind: FunctionType, arg0: function60000000, arg1: specific<none>, type: type(TypeType)}
|
||||
// CHECK:STDOUT: inst60000027: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000026)}
|
||||
// CHECK:STDOUT: inst60000028: {kind: NameRef, arg0: name00000001, arg1: inst60000012, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000029: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst6000002A: {kind: TupleLiteral, arg0: inst_block6000000D, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst6000002B: {kind: TupleAccess, arg0: inst60000024, arg1: element0, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst6000002C: {kind: TupleInit, arg0: inst_block6000000E, arg1: inst6000002B, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst6000002D: {kind: TupleValue, arg0: inst_block_empty, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst6000002E: {kind: Converted, arg0: inst60000028, arg1: inst6000002C, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst6000002F: {kind: TupleAccess, arg0: inst60000024, arg1: element1, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000030: {kind: TupleInit, arg0: inst_block_empty, arg1: inst6000002F, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000031: {kind: Converted, arg0: inst60000029, arg1: inst60000030, type: type(inst6000000F)}
|
||||
// CHECK:STDOUT: inst60000032: {kind: TupleInit, arg0: inst_block6000000F, arg1: inst60000024, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst60000033: {kind: TupleValue, arg0: inst_block60000010, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst60000034: {kind: Converted, arg0: inst6000002A, arg1: inst60000032, type: type(inst60000018)}
|
||||
// CHECK:STDOUT: inst60000035: {kind: ReturnExpr, arg0: inst60000034, arg1: inst60000024}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000012: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F)
|
||||
// CHECK:STDOUT: inst60000011: concrete_constant(inst6000000F)
|
||||
// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013)
|
||||
// CHECK:STDOUT: inst60000014: concrete_constant(inst60000014)
|
||||
// CHECK:STDOUT: inst60000015: concrete_constant(inst60000015)
|
||||
// CHECK:STDOUT: inst60000016: concrete_constant(inst60000016)
|
||||
// CHECK:STDOUT: inst60000019: concrete_constant(inst60000019)
|
||||
// CHECK:STDOUT: inst6000001B: concrete_constant(inst6000001B)
|
||||
// CHECK:STDOUT: inst6000001C: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst6000001D: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst6000001E: concrete_constant(inst60000019)
|
||||
// CHECK:STDOUT: inst60000018: concrete_constant(inst60000018)
|
||||
// CHECK:STDOUT: inst6000001A: concrete_constant(inst6000001A)
|
||||
// CHECK:STDOUT: inst6000001B: concrete_constant(inst6000000F)
|
||||
// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000000F)
|
||||
// CHECK:STDOUT: inst6000001D: concrete_constant(inst60000018)
|
||||
// CHECK:STDOUT: inst6000001E: concrete_constant(inst6000001E)
|
||||
// CHECK:STDOUT: inst6000001F: concrete_constant(inst6000001F)
|
||||
// CHECK:STDOUT: inst60000020: concrete_constant(inst60000020)
|
||||
// CHECK:STDOUT: inst60000021: concrete_constant(inst60000021)
|
||||
// CHECK:STDOUT: inst60000023: concrete_constant(inst60000010)
|
||||
// CHECK:STDOUT: inst60000026: concrete_constant(inst60000028)
|
||||
// CHECK:STDOUT: inst60000022: concrete_constant(inst6000000F)
|
||||
// CHECK:STDOUT: inst60000025: concrete_constant(inst60000027)
|
||||
// CHECK:STDOUT: inst60000026: concrete_constant(inst60000026)
|
||||
// CHECK:STDOUT: inst60000027: concrete_constant(inst60000027)
|
||||
// CHECK:STDOUT: inst60000028: concrete_constant(inst60000028)
|
||||
// CHECK:STDOUT: inst6000002D: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst6000002E: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst6000002F: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst60000031: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst60000032: concrete_constant(inst6000002E)
|
||||
// CHECK:STDOUT: inst60000033: concrete_constant(inst60000034)
|
||||
// CHECK:STDOUT: inst60000034: concrete_constant(inst60000034)
|
||||
// CHECK:STDOUT: inst60000035: concrete_constant(inst60000034)
|
||||
// CHECK:STDOUT: inst6000002C: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst6000002D: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst6000002E: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst60000030: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst60000031: concrete_constant(inst6000002D)
|
||||
// CHECK:STDOUT: inst60000032: concrete_constant(inst60000033)
|
||||
// CHECK:STDOUT: inst60000033: concrete_constant(inst60000033)
|
||||
// CHECK:STDOUT: inst60000034: concrete_constant(inst60000033)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
// CHECK:STDOUT: exports:
|
||||
// CHECK:STDOUT: 0: inst60000026
|
||||
// CHECK:STDOUT: 0: inst60000025
|
||||
// CHECK:STDOUT: imports: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004:
|
||||
// CHECK:STDOUT: 0: inst60000011
|
||||
// CHECK:STDOUT: 1: inst60000012
|
||||
// CHECK:STDOUT: inst_block60000005:
|
||||
// CHECK:STDOUT: 0: inst60000016
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst60000017
|
||||
// CHECK:STDOUT: 1: inst60000018
|
||||
// CHECK:STDOUT: inst_block60000007:
|
||||
// CHECK:STDOUT: 0: inst60000010
|
||||
// CHECK:STDOUT: 1: inst60000010
|
||||
// CHECK:STDOUT: inst_block60000008:
|
||||
// CHECK:STDOUT: 0: inst6000001C
|
||||
// CHECK:STDOUT: 1: inst6000001D
|
||||
// CHECK:STDOUT: inst_block60000009:
|
||||
// CHECK:STDOUT: 0: inst60000022
|
||||
// CHECK:STDOUT: 1: inst60000024
|
||||
// CHECK:STDOUT: inst_block6000000A:
|
||||
// CHECK:STDOUT: 1: inst60000011
|
||||
// CHECK:STDOUT: inst_block60000005:
|
||||
// CHECK:STDOUT: 0: inst60000015
|
||||
// CHECK:STDOUT: 1: inst60000016
|
||||
// CHECK:STDOUT: 2: inst60000020
|
||||
// CHECK:STDOUT: 3: inst60000021
|
||||
// CHECK:STDOUT: inst_block60000006:
|
||||
// CHECK:STDOUT: 0: inst60000016
|
||||
// CHECK:STDOUT: 1: inst60000017
|
||||
// CHECK:STDOUT: inst_block60000007:
|
||||
// CHECK:STDOUT: 0: inst6000000F
|
||||
// CHECK:STDOUT: 1: inst6000000F
|
||||
// CHECK:STDOUT: inst_block60000008:
|
||||
// CHECK:STDOUT: 0: inst6000001B
|
||||
// CHECK:STDOUT: 1: inst6000001C
|
||||
// CHECK:STDOUT: inst_block60000009:
|
||||
// CHECK:STDOUT: 0: inst60000021
|
||||
// CHECK:STDOUT: 1: inst60000023
|
||||
// CHECK:STDOUT: inst_block6000000A:
|
||||
// CHECK:STDOUT: 0: inst60000014
|
||||
// CHECK:STDOUT: 1: inst60000015
|
||||
// CHECK:STDOUT: 2: inst6000001F
|
||||
// CHECK:STDOUT: 3: inst60000020
|
||||
// CHECK:STDOUT: inst_block6000000B:
|
||||
// CHECK:STDOUT: 0: inst60000017
|
||||
// CHECK:STDOUT: 1: inst60000018
|
||||
// CHECK:STDOUT: 2: inst6000001A
|
||||
// CHECK:STDOUT: 3: inst6000001C
|
||||
// CHECK:STDOUT: 4: inst6000001D
|
||||
// CHECK:STDOUT: 5: inst6000001E
|
||||
// CHECK:STDOUT: 6: inst60000022
|
||||
// CHECK:STDOUT: 7: inst60000023
|
||||
// CHECK:STDOUT: 8: inst60000013
|
||||
// CHECK:STDOUT: 9: inst60000024
|
||||
// CHECK:STDOUT: 10: inst60000025
|
||||
// CHECK:STDOUT: 0: inst60000016
|
||||
// CHECK:STDOUT: 1: inst60000017
|
||||
// CHECK:STDOUT: 2: inst60000019
|
||||
// CHECK:STDOUT: 3: inst6000001B
|
||||
// CHECK:STDOUT: 4: inst6000001C
|
||||
// CHECK:STDOUT: 5: inst6000001D
|
||||
// CHECK:STDOUT: 6: inst60000021
|
||||
// CHECK:STDOUT: 7: inst60000022
|
||||
// CHECK:STDOUT: 8: inst60000012
|
||||
// CHECK:STDOUT: 9: inst60000023
|
||||
// CHECK:STDOUT: 10: inst60000024
|
||||
// CHECK:STDOUT: inst_block6000000C:
|
||||
// CHECK:STDOUT: 0: inst60000029
|
||||
// CHECK:STDOUT: 1: inst6000002A
|
||||
// CHECK:STDOUT: 2: inst6000002B
|
||||
// CHECK:STDOUT: 3: inst6000002C
|
||||
// CHECK:STDOUT: 4: inst6000002D
|
||||
// CHECK:STDOUT: 5: inst6000002F
|
||||
// CHECK:STDOUT: 6: inst60000030
|
||||
// CHECK:STDOUT: 7: inst60000031
|
||||
// CHECK:STDOUT: 8: inst60000032
|
||||
// CHECK:STDOUT: 9: inst60000033
|
||||
// CHECK:STDOUT: 10: inst60000035
|
||||
// CHECK:STDOUT: 11: inst60000036
|
||||
// CHECK:STDOUT: 0: inst60000028
|
||||
// CHECK:STDOUT: 1: inst60000029
|
||||
// CHECK:STDOUT: 2: inst6000002A
|
||||
// CHECK:STDOUT: 3: inst6000002B
|
||||
// CHECK:STDOUT: 4: inst6000002C
|
||||
// CHECK:STDOUT: 5: inst6000002E
|
||||
// CHECK:STDOUT: 6: inst6000002F
|
||||
// CHECK:STDOUT: 7: inst60000030
|
||||
// CHECK:STDOUT: 8: inst60000031
|
||||
// CHECK:STDOUT: 9: inst60000032
|
||||
// CHECK:STDOUT: 10: inst60000034
|
||||
// CHECK:STDOUT: 11: inst60000035
|
||||
// CHECK:STDOUT: inst_block6000000D:
|
||||
// CHECK:STDOUT: 0: inst60000029
|
||||
// CHECK:STDOUT: 1: inst6000002A
|
||||
// CHECK:STDOUT: 0: inst60000028
|
||||
// CHECK:STDOUT: 1: inst60000029
|
||||
// CHECK:STDOUT: inst_block6000000E: {}
|
||||
// CHECK:STDOUT: inst_block6000000F:
|
||||
// CHECK:STDOUT: 0: inst6000002F
|
||||
// CHECK:STDOUT: 1: inst60000032
|
||||
// CHECK:STDOUT: inst_block60000010:
|
||||
// CHECK:STDOUT: 0: inst6000002E
|
||||
// CHECK:STDOUT: 1: inst6000002E
|
||||
// CHECK:STDOUT: 1: inst60000031
|
||||
// CHECK:STDOUT: inst_block60000010:
|
||||
// CHECK:STDOUT: 0: inst6000002D
|
||||
// CHECK:STDOUT: 1: inst6000002D
|
||||
// CHECK:STDOUT: inst_block60000011:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 1: inst60000026
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: 1: inst60000025
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: --- one_file_with_textual_ir.carbon
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -130,7 +130,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %true: bool = bool_literal true [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @C(<unexpected>.inst68000015.loc4_14: type) {
|
||||
// CHECK:STDOUT: generic class @C(<unexpected>.inst68000014.loc4_14: type) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -145,7 +145,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, <unexpected>.inst6800001A.loc4_24 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, <unexpected>.inst68000019.loc4_24 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true]
|
||||
// CHECK:STDOUT: if %true br !if.expr.then else br !if.expr.else
|
||||
// CHECK:STDOUT: complete_type_witness = invalid
|
||||
|
||||
+9
-9
@@ -185,7 +185,7 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst6000001E
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst6000001D
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -196,7 +196,7 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst5000001E
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst5000001D
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -207,7 +207,7 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst68000024
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst68000023
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -218,7 +218,7 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst5800001B
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst5800001A
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -228,12 +228,12 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Z(<unexpected>.inst78000018.loc6_13: type) {
|
||||
// CHECK:STDOUT: generic interface @Z(<unexpected>.inst78000017.loc6_13: type) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst78000022
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst78000021
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -248,12 +248,12 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic interface @Z(<unexpected>.inst44000018.loc6_13: type) {
|
||||
// CHECK:STDOUT: generic interface @Z(<unexpected>.inst44000017.loc6_13: type) {
|
||||
// CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst44000022
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst44000021
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
@@ -269,7 +269,7 @@ fn F(T:! Z) {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: interface @Z {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst6400001E
|
||||
// CHECK:STDOUT: .Self = <unexpected>.inst6400001D
|
||||
// CHECK:STDOUT: witness = invalid
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -632,12 +632,12 @@ impl i32 as Empty {
|
||||
// CHECK:STDOUT: !members:
|
||||
// CHECK:STDOUT: .Self = constants.%C
|
||||
// CHECK:STDOUT: .F = %C.F.decl
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst48000024.loc14_7
|
||||
// CHECK:STDOUT: .x = <unexpected>.inst48000023.loc14_7
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @C.F() -> %empty_tuple.type {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, <unexpected>.inst48000024.loc14_7
|
||||
// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, <unexpected>.inst48000023.loc14_7
|
||||
// CHECK:STDOUT: %.loc5_25: init %empty_tuple.type = tuple_init () to %return [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc5_26: init %empty_tuple.type = converted %x.ref, %.loc5_25 [concrete = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: return %.loc5_26 to %return
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ fn F() {
|
||||
// CHECK:STDOUT: file {
|
||||
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
|
||||
// CHECK:STDOUT: .Core = imports.%Core
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst6000002D.loc19_5
|
||||
// CHECK:STDOUT: .n = <unexpected>.inst6000002C.loc19_5
|
||||
// CHECK:STDOUT: .F = %F.decl
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
|
||||
+8
-8
@@ -96,7 +96,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete]
|
||||
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
|
||||
// CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.de9: <witness> = impl_witness <unexpected>.inst60000156 [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.de9: <witness> = impl_witness <unexpected>.inst60000155 [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete]
|
||||
// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete]
|
||||
@@ -105,7 +105,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F(%b.param: bool) -> type {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %b.ref: bool = name_ref b, <unexpected>.inst6000001C.loc5_6
|
||||
// CHECK:STDOUT: %b.ref: bool = name_ref b, <unexpected>.inst6000001B.loc5_6
|
||||
// CHECK:STDOUT: if %b.ref br !if.expr.then else br !if.expr.else
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !if.expr.then:
|
||||
@@ -123,7 +123,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %impl.elem0: %.98f = impl_witness_access constants.%Copy.impl_witness.de9, element0 [concrete = constants.%type.as.Copy.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc6, %impl.elem0
|
||||
// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6)
|
||||
// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to <unexpected>.inst60000025.loc5_15
|
||||
// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to <unexpected>.inst60000024.loc5_15
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_and_val.carbon
|
||||
@@ -140,7 +140,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete]
|
||||
// CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete]
|
||||
// CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.de9: <witness> = impl_witness <unexpected>.inst70000156 [concrete]
|
||||
// CHECK:STDOUT: %Copy.impl_witness.de9: <witness> = impl_witness <unexpected>.inst70000155 [concrete]
|
||||
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete]
|
||||
// CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete]
|
||||
// CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete]
|
||||
@@ -149,7 +149,7 @@ fn F() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F(%b.param: bool) -> type {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %b.ref: bool = name_ref b, <unexpected>.inst7000001C.loc5_6
|
||||
// CHECK:STDOUT: %b.ref: bool = name_ref b, <unexpected>.inst7000001B.loc5_6
|
||||
// CHECK:STDOUT: if %b.ref br !if.expr.then else br !if.expr.else
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !if.expr.then:
|
||||
@@ -167,7 +167,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %impl.elem0: %.98f = impl_witness_access constants.%Copy.impl_witness.de9, element0 [concrete = constants.%type.as.Copy.impl.Op]
|
||||
// CHECK:STDOUT: %bound_method: <bound method> = bound_method %.loc6, %impl.elem0
|
||||
// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6)
|
||||
// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to <unexpected>.inst70000025.loc5_15
|
||||
// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to <unexpected>.inst70000024.loc5_15
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: --- fail_or_val.carbon
|
||||
@@ -189,7 +189,7 @@ fn F() {
|
||||
// CHECK:STDOUT: %false: bool = bool_literal false [concrete]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: generic class @C(<unexpected>.inst6800001F.loc4_14: bool) {
|
||||
// CHECK:STDOUT: generic class @C(<unexpected>.inst6800001E.loc4_14: bool) {
|
||||
// CHECK:STDOUT: %B: bool = symbolic_binding B, 0 [symbolic = %B (constants.%B.931)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
@@ -204,7 +204,7 @@ fn F() {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @B {
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, <unexpected>.inst68000025.loc4_24 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, <unexpected>.inst68000024.loc4_24 [concrete = constants.%C.generic]
|
||||
// CHECK:STDOUT: %true.loc12_20: bool = bool_literal true [concrete = constants.%true]
|
||||
// CHECK:STDOUT: %.loc12: bool = not %true.loc12_20 [concrete = constants.%false]
|
||||
// CHECK:STDOUT: %true.loc12_25: bool = bool_literal true [concrete = constants.%true]
|
||||
|
||||
+4
-4
@@ -32,7 +32,7 @@
|
||||
// CHECK:STDOUT: import_ir_insts: {}
|
||||
// CHECK:STDOUT: clang_decls: {}
|
||||
// CHECK:STDOUT: name_scopes:
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000F, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: name_scope00000000: {inst: inst0000000E, parent_scope: name_scope<none>, has_error: false, extended_scopes: [], names: {}}
|
||||
// CHECK:STDOUT: entity_names: {}
|
||||
// CHECK:STDOUT: cpp_global_vars: {}
|
||||
// CHECK:STDOUT: functions: {}
|
||||
@@ -49,10 +49,10 @@
|
||||
// CHECK:STDOUT: 'type(inst(NamespaceType))':
|
||||
// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: insts:
|
||||
// CHECK:STDOUT: inst0000000F: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: inst0000000E: {kind: Namespace, arg0: name_scope00000000, arg1: inst<none>, type: type(inst(NamespaceType))}
|
||||
// CHECK:STDOUT: constant_values:
|
||||
// CHECK:STDOUT: values:
|
||||
// CHECK:STDOUT: inst0000000F: concrete_constant(inst0000000F)
|
||||
// CHECK:STDOUT: inst0000000E: concrete_constant(inst0000000E)
|
||||
// CHECK:STDOUT: symbolic_constants: {}
|
||||
// CHECK:STDOUT: inst_blocks:
|
||||
// CHECK:STDOUT: inst_block_empty: {}
|
||||
@@ -60,7 +60,7 @@
|
||||
// CHECK:STDOUT: imports: {}
|
||||
// CHECK:STDOUT: global_init: {}
|
||||
// CHECK:STDOUT: inst_block60000004:
|
||||
// CHECK:STDOUT: 0: inst0000000F
|
||||
// CHECK:STDOUT: 0: inst0000000E
|
||||
// CHECK:STDOUT: ...
|
||||
// CHECK:STDOUT: --- -
|
||||
// CHECK:STDOUT:
|
||||
|
||||
@@ -135,7 +135,6 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory {
|
||||
case ImplWitnessAccess::Kind:
|
||||
case ImplWitnessAccessSubstituted::Kind:
|
||||
case ImplWitnessTable::Kind:
|
||||
case ImplWitnessTablePlaceholder::Kind:
|
||||
case ImportCppDecl::Kind:
|
||||
case ImportDecl::Kind:
|
||||
case InstType::Kind:
|
||||
|
||||
@@ -31,12 +31,19 @@ struct InstId : public IdBase<InstId> {
|
||||
// because the name is currently being initialized.
|
||||
static const InstId InitTombstone;
|
||||
|
||||
// A placeholder used in the `ImplWitness` table of instructions for members
|
||||
// of the impl. These are replaced as values are seen for the witness table in
|
||||
// the impl declaration or definition. This is distinct from `None` for
|
||||
// debugging purposes.
|
||||
static const InstId ImplWitnessTablePlaceholder;
|
||||
|
||||
using IdBase::IdBase;
|
||||
|
||||
auto Print(llvm::raw_ostream& out) const -> void;
|
||||
};
|
||||
|
||||
constexpr InstId InstId::InitTombstone = InstId(NoneIndex - 1);
|
||||
constexpr InstId InstId::ImplWitnessTablePlaceholder = InstId(NoneIndex - 2);
|
||||
|
||||
// An InstId whose value is a type. The fact it's a type must be validated
|
||||
// before construction, and this allows that validation to be represented in the
|
||||
|
||||
@@ -81,7 +81,6 @@ CARBON_SEM_IR_INST_KIND(ImplWitnessAccess)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessAccessSubstituted)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessAssociatedConstant)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessTable)
|
||||
CARBON_SEM_IR_INST_KIND(ImplWitnessTablePlaceholder)
|
||||
CARBON_SEM_IR_INST_KIND(ImportCppDecl)
|
||||
CARBON_SEM_IR_INST_KIND(ImportDecl)
|
||||
CARBON_SEM_IR_INST_KIND(ImportRefLoaded)
|
||||
|
||||
@@ -13,21 +13,13 @@ namespace Carbon::SemIR {
|
||||
// The canonical list of singleton kinds. The order of `TypeType` is
|
||||
// significant because other singletons use it as a type.
|
||||
static constexpr std::array SingletonInstKinds = {
|
||||
InstKind::TypeType,
|
||||
InstKind::AutoType,
|
||||
InstKind::BoolType,
|
||||
InstKind::BoundMethodType,
|
||||
InstKind::CharLiteralType,
|
||||
InstKind::CppVoidType,
|
||||
InstKind::ErrorInst,
|
||||
InstKind::FloatLiteralType,
|
||||
InstKind::ImplWitnessTablePlaceholder,
|
||||
InstKind::InstType,
|
||||
InstKind::IntLiteralType,
|
||||
InstKind::NamespaceType,
|
||||
InstKind::SpecificFunctionType,
|
||||
InstKind::VtableType,
|
||||
InstKind::WitnessType,
|
||||
InstKind::TypeType, InstKind::AutoType,
|
||||
InstKind::BoolType, InstKind::BoundMethodType,
|
||||
InstKind::CharLiteralType, InstKind::CppVoidType,
|
||||
InstKind::ErrorInst, InstKind::FloatLiteralType,
|
||||
InstKind::InstType, InstKind::IntLiteralType,
|
||||
InstKind::NamespaceType, InstKind::SpecificFunctionType,
|
||||
InstKind::VtableType, InstKind::WitnessType,
|
||||
};
|
||||
|
||||
// Returns true if the InstKind is a singleton.
|
||||
|
||||
@@ -909,7 +909,7 @@ struct ImplWitnessAssociatedConstant {
|
||||
// The witness table contains an instruction for each associated constant and
|
||||
// function in the impl declaration (and definition, if seen). The `specific_id`
|
||||
// from the `ImplWitness` should be applied to those instructions. Instructions
|
||||
// will be `ImplWitnessTablePlaceholder` until a value is seen for them.
|
||||
// will be `InstId::ImplWitnessTablePlaceholder` until a value is seen for them.
|
||||
//
|
||||
// An `ImplWitnessTable` can be shared by multiple `ImplWitness` instructions,
|
||||
// to avoid the work of importing the full table with each witness.
|
||||
@@ -951,20 +951,6 @@ struct ImplWitnessTable {
|
||||
ImplId impl_id;
|
||||
};
|
||||
|
||||
// A singleton placeholder instruction used in the `ImplWitness` table of
|
||||
// instructions for members of the impl. These are replaced as values are seen
|
||||
// for the witness table in the impl declaration or definition.
|
||||
struct ImplWitnessTablePlaceholder {
|
||||
static constexpr auto Kind =
|
||||
InstKind::ImplWitnessTablePlaceholder.Define<Parse::NodeId>(
|
||||
{.ir_name = "impl_witness_table_placeholder",
|
||||
.constant_kind = InstConstantKind::AlwaysUnique,
|
||||
.is_lowered = false});
|
||||
static constexpr auto TypeInstId = MakeSingletonTypeInstId<Kind>();
|
||||
|
||||
TypeId type_id;
|
||||
};
|
||||
|
||||
// An `import Cpp` declaration.
|
||||
struct ImportCppDecl {
|
||||
static constexpr auto Kind =
|
||||
|
||||
Reference in New Issue
Block a user