diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index 8061217423c7..2f60d3dd3285 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -257,6 +257,13 @@ auto EvalConstantInst(Context& context, SemIR::InstId inst_id, return ConstantEvalResult::NewSamePhase(inst); } +auto EvalConstantInst(Context& context, + SemIR::ImplWitnessAssociatedConstant inst) + -> ConstantEvalResult { + return ConstantEvalResult::Existing( + context.constant_values().Get(inst.inst_id)); +} + auto EvalConstantInst(Context& /*context*/, SemIR::ImportRefUnloaded inst) -> ConstantEvalResult { CARBON_FATAL("ImportRefUnloaded should be loaded before TryEvalInst: {0}", diff --git a/toolchain/check/facet_type.cpp b/toolchain/check/facet_type.cpp index 1ce2cb466bb8..e494b430e087 100644 --- a/toolchain/check/facet_type.cpp +++ b/toolchain/check/facet_type.cpp @@ -10,6 +10,7 @@ #include "toolchain/check/interface.h" #include "toolchain/check/type.h" #include "toolchain/check/type_completion.h" +#include "toolchain/sem_ir/typed_insts.h" namespace Carbon::Check { @@ -106,8 +107,9 @@ auto InitialFacetTypeImplWitness( SemIR::InstId witness_inst_id = SemIR::InstId::None; llvm::MutableArrayRef table; { - llvm::SmallVector empty_table(assoc_entities.size(), - SemIR::InstId::None); + llvm::SmallVector empty_table( + assoc_entities.size(), + SemIR::ImplWitnessTablePlaceholder::SingletonInstId); auto table_id = context.inst_blocks().Add(empty_table); table = context.inst_blocks().GetMutable(table_id); witness_inst_id = AddInst( @@ -133,90 +135,94 @@ auto InitialFacetTypeImplWitness( continue; } auto rewrite_value = rewrite.rhs_const_id; + if (rewrite_value == SemIR::ErrorInst::SingletonConstantId) { + table_entry = SemIR::ErrorInst::SingletonInstId; + continue; + } - if (table_entry.has_value()) { - auto const_id = context.constant_values().Get(table_entry); - if (const_id != rewrite_value && - rewrite_value != SemIR::ErrorInst::SingletonConstantId) { - table_entry = SemIR::ErrorInst::SingletonInstId; + auto decl_id = context.constant_values().GetConstantInstId( + assoc_entities[access.index.index]); + CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity"); + if (decl_id == SemIR::ErrorInst::SingletonInstId) { + table_entry = SemIR::ErrorInst::SingletonInstId; + continue; + } + + auto assoc_constant_decl = + context.insts().TryGetAs(decl_id); + if (!assoc_constant_decl) { + auto type_id = context.insts().Get(decl_id).type_id(); + auto type_inst = context.types().GetAsInst(type_id); + auto fn_type = type_inst.As(); + const auto& fn = context.functions().Get(fn_type.function_id); + CARBON_DIAGNOSTIC(RewriteForAssociatedFunction, Error, + "rewrite specified for associated function {0}", + SemIR::NameId); + context.emitter().Emit(facet_type_inst_id, RewriteForAssociatedFunction, + fn.name_id); + table_entry = SemIR::ErrorInst::SingletonInstId; + continue; + } + + if (table_entry != SemIR::ImplWitnessTablePlaceholder::SingletonInstId) { + if (context.constant_values().Get(table_entry) != rewrite_value) { // TODO: Figure out how to print the two different values // `const_id` & `rewrite_value` in the diagnostic // message. CARBON_DIAGNOSTIC(AssociatedConstantWithDifferentValues, Error, "associated constant {0} given two different values", SemIR::NameId); - auto decl_id = assoc_entities[access.index.index]; - SemIR::NameId name_id = SemIR::NameId::None; - if (auto decl = context.insts().TryGetAs( - decl_id)) { - auto& assoc_const = - context.associated_constants().Get(decl->assoc_const_id); - name_id = assoc_const.name_id; - } else { - auto import_ref = context.insts().GetAs(decl_id); - const auto& entity_name = - context.entity_names().Get(import_ref.entity_name_id); - name_id = entity_name.name_id; - } + auto& assoc_const = context.associated_constants().Get( + assoc_constant_decl->assoc_const_id); context.emitter().Emit(facet_type_inst_id, - AssociatedConstantWithDifferentValues, name_id); + AssociatedConstantWithDifferentValues, + assoc_const.name_id); } + table_entry = SemIR::ErrorInst::SingletonInstId; continue; } - auto decl_id = context.constant_values().GetConstantInstId( - assoc_entities[access.index.index]); - CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity"); - if (auto decl = - context.insts().TryGetAs(decl_id)) { - // If the associated constant has a symbolic type, convert the rewrite - // value to that type now we know the value of `Self`. - SemIR::TypeId assoc_const_type_id = decl->type_id; - if (assoc_const_type_id.is_symbolic()) { - // Get the type of the associated constant in this interface with this - // value for `Self`. - assoc_const_type_id = GetTypeForSpecificAssociatedEntity( - context, facet_type_inst_id, interface_to_witness.specific_id, - decl_id, context.types().GetTypeIdForTypeInstId(self_type_inst_id), - witness_inst_id); - // Perform the conversion of the value to the type. We skipped this when - // forming the facet type because the type of the associated constant - // was symbolic. - auto converted_inst_id = ConvertToValueOfType( - context, context.insts().GetLocId(facet_type_inst_id), - context.constant_values().GetInstId(rewrite_value), - assoc_const_type_id); - rewrite_value = context.constant_values().Get(converted_inst_id); - // The result of conversion can be non-constant even if the original - // value was constant. - if (!rewrite_value.is_constant() && - rewrite_value != SemIR::ErrorInst::SingletonConstantId) { - const auto& assoc_const = - context.associated_constants().Get(decl->assoc_const_id); - CARBON_DIAGNOSTIC( - AssociatedConstantNotConstantAfterConversion, Error, - "associated constant {0} given value that is not constant " - "after conversion to {1}", - SemIR::NameId, SemIR::TypeId); - context.emitter().Emit(facet_type_inst_id, - AssociatedConstantNotConstantAfterConversion, - assoc_const.name_id, assoc_const_type_id); - rewrite_value = SemIR::ErrorInst::SingletonConstantId; - } + + // If the associated constant has a symbolic type, convert the rewrite + // value to that type now we know the value of `Self`. + SemIR::TypeId assoc_const_type_id = assoc_constant_decl->type_id; + if (assoc_const_type_id.is_symbolic()) { + // Get the type of the associated constant in this interface with this + // value for `Self`. + assoc_const_type_id = GetTypeForSpecificAssociatedEntity( + context, facet_type_inst_id, interface_to_witness.specific_id, + decl_id, context.types().GetTypeIdForTypeInstId(self_type_inst_id), + witness_inst_id); + // Perform the conversion of the value to the type. We skipped this when + // forming the facet type because the type of the associated constant + // was symbolic. + auto converted_inst_id = ConvertToValueOfType( + context, context.insts().GetLocId(facet_type_inst_id), + context.constant_values().GetInstId(rewrite_value), + assoc_const_type_id); + rewrite_value = context.constant_values().Get(converted_inst_id); + // The result of conversion can be non-constant even if the original + // value was constant. + if (!rewrite_value.is_constant() && + rewrite_value != SemIR::ErrorInst::SingletonConstantId) { + const auto& assoc_const = context.associated_constants().Get( + assoc_constant_decl->assoc_const_id); + CARBON_DIAGNOSTIC( + AssociatedConstantNotConstantAfterConversion, Error, + "associated constant {0} given value that is not constant " + "after conversion to {1}", + SemIR::NameId, SemIR::TypeId); + context.emitter().Emit(facet_type_inst_id, + AssociatedConstantNotConstantAfterConversion, + assoc_const.name_id, assoc_const_type_id); + rewrite_value = SemIR::ErrorInst::SingletonConstantId; } - } else { - if (decl_id != SemIR::ErrorInst::SingletonInstId) { - auto type_id = context.insts().Get(decl_id).type_id(); - auto type_inst = context.types().GetAsInst(type_id); - auto fn_type = type_inst.As(); - const auto& fn = context.functions().Get(fn_type.function_id); - CARBON_DIAGNOSTIC(RewriteForAssociatedFunction, Error, - "rewrite specified for associated function {0}", - SemIR::NameId); - context.emitter().Emit(facet_type_inst_id, RewriteForAssociatedFunction, - fn.name_id); - } - continue; } + + auto rewrite_inst_id = context.constant_values().GetInstId(rewrite_value); + table_entry = AddInst( + context, witness_loc_id, + {.type_id = context.insts().Get(rewrite_inst_id).type_id(), + .inst_id = rewrite_inst_id}); table_entry = context.constant_values().GetInstId(rewrite_value); } return witness_inst_id; @@ -246,8 +252,9 @@ auto AllocateFacetTypeImplWitness(Context& context, LoadImportRef(context, decl_id); } - llvm::SmallVector empty_table(assoc_entities.size(), - SemIR::InstId::None); + llvm::SmallVector empty_table( + assoc_entities.size(), + SemIR::ImplWitnessTablePlaceholder::SingletonInstId); context.inst_blocks().ReplacePlaceholder(witness_id, empty_table); } diff --git a/toolchain/check/handle_impl.cpp b/toolchain/check/handle_impl.cpp index f9af1b02db40..9cc38e94f227 100644 --- a/toolchain/check/handle_impl.cpp +++ b/toolchain/check/handle_impl.cpp @@ -465,6 +465,7 @@ static auto BuildImplDecl(Context& context, Parse::AnyImplDeclId node_id, context.emitter().Emit(loc, ImplUnusedBinding); // Don't try to match the impl at all, save us work and possible future // diagnostics. + FillImplWitnessWithErrors(context, impl_info); context.impls().Get(impl_decl.impl_id).witness_id = SemIR::ErrorInst::SingletonInstId; } @@ -495,6 +496,7 @@ static auto BuildImplDecl(Context& context, Parse::AnyImplDeclId node_id, self_type_node, self_type_id, name.implicit_params_loc_id, constraint_inst_id, constraint_type_id)) { // Don't allow the invalid impl to be used. + FillImplWitnessWithErrors(context, impl_info); context.impls().Get(impl_decl.impl_id).witness_id = SemIR::ErrorInst::SingletonInstId; } diff --git a/toolchain/check/impl.cpp b/toolchain/check/impl.cpp index 74ab03b8c2f8..7482f7ad2be0 100644 --- a/toolchain/check/impl.cpp +++ b/toolchain/check/impl.cpp @@ -86,7 +86,7 @@ static auto CheckAssociatedFunctionImplementation( // Builds an initial witness from the rewrites in the facet type, if any. auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl, - bool is_definition) -> SemIR::InstId { + bool has_definition) -> SemIR::InstId { CARBON_CHECK(!impl.has_definition_started()); auto self_type_id = context.types().GetTypeIdForTypeInstId(impl.self_id); @@ -98,7 +98,7 @@ auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl, return InitialFacetTypeImplWitness( context, context.insts().GetLocId(impl.latest_decl_id()), impl.constraint_id, impl.self_id, impl.interface, - context.generics().GetSelfSpecific(impl.generic_id), is_definition); + context.generics().GetSelfSpecific(impl.generic_id), has_definition); } auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void { @@ -139,7 +139,8 @@ auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void { CARBON_CHECK(decl_id.has_value(), "Non-constant associated entity"); if (auto decl = context.insts().TryGetAs(decl_id)) { - if (!witness_value.has_value()) { + if (witness_value == + SemIR::ImplWitnessTablePlaceholder::SingletonInstId) { CARBON_DIAGNOSTIC(ImplAssociatedConstantNeedsValue, Error, "associated constant {0} not given a value in impl " "of interface {1}", @@ -147,7 +148,7 @@ auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void { CARBON_DIAGNOSTIC(AssociatedConstantHere, Note, "associated constant declared here"); context.emitter() - .Build(impl.constraint_id, ImplAssociatedConstantNeedsValue, + .Build(impl.definition_id, ImplAssociatedConstantNeedsValue, context.associated_constants() .Get(decl->assoc_const_id) .name_id, @@ -241,7 +242,7 @@ auto FillImplWitnessWithErrors(Context& context, SemIR::Impl& impl) -> void { auto witness = context.insts().GetAs(impl.witness_id); auto witness_block = context.inst_blocks().GetMutable(witness.elements_id); for (auto& elem : witness_block) { - if (!elem.has_value()) { + if (elem == SemIR::ImplWitnessTablePlaceholder::SingletonInstId) { elem = SemIR::ErrorInst::SingletonInstId; } } diff --git a/toolchain/check/impl.h b/toolchain/check/impl.h index f33f9c414f48..3a2e9f99cb9b 100644 --- a/toolchain/check/impl.h +++ b/toolchain/check/impl.h @@ -10,9 +10,12 @@ namespace Carbon::Check { -// Returns the initial witness value for a new impl declaration. +// Returns the initial witness value for a new `impl` declaration. +// +// `has_definition` is whether this declaration is immediately followed by the +// opening of the definition. auto ImplWitnessForDeclaration(Context& context, const SemIR::Impl& impl, - bool is_definition) -> SemIR::InstId; + bool has_definition) -> SemIR::InstId; // Update `impl`'s witness at the start of a definition. auto ImplWitnessStartDefinition(Context& context, SemIR::Impl& impl) -> void; diff --git a/toolchain/check/testdata/alias/no_prelude/export_name.carbon b/toolchain/check/testdata/alias/no_prelude/export_name.carbon index 5367c6156f59..c3fc932f1421 100644 --- a/toolchain/check/testdata/alias/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/alias/no_prelude/export_name.carbon @@ -107,7 +107,7 @@ var d: D* = &c; // CHECK:STDOUT: %Main.C = import_ref Main//base, C, unloaded // CHECK:STDOUT: %Main.D: type = import_ref Main//base, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -138,7 +138,7 @@ var d: D* = &c; // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -168,8 +168,8 @@ var d: D* = &c; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//export, D, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst23 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -249,8 +249,8 @@ var d: D* = &c; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//export, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.C: type = import_ref Main//export_orig, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export_orig, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_orig, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export_orig, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_orig, inst23 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/alias/no_prelude/import.carbon b/toolchain/check/testdata/alias/no_prelude/import.carbon index 68b6625ff30d..f38a7afd03db 100644 --- a/toolchain/check/testdata/alias/no_prelude/import.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import.carbon @@ -119,7 +119,7 @@ var c: () = a_alias_alias; // CHECK:STDOUT: %Main.c_alias: type = import_ref Main//class1, c_alias, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.a = import_ref Main//class1, a, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//class1, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//class1, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//class1, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -164,8 +164,8 @@ var c: () = a_alias_alias; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.c_alias_alias: type = import_ref Main//class2, c_alias_alias, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.b = import_ref Main//class2, b, unloaded -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//class2, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//class2, inst23 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//class2, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//class2, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/alias/no_prelude/import_access.carbon b/toolchain/check/testdata/alias/no_prelude/import_access.carbon index 31e91b4b9767..216e83c442f4 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_access.carbon @@ -92,7 +92,7 @@ var inst: Test.A = {}; // CHECK:STDOUT: %Test.C = import_ref Test//def, C, unloaded // CHECK:STDOUT: %Test.A: type = import_ref Test//def, A, loaded [concrete = constants.%C] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.2c4 = import_ref Test//def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.2c4 = import_ref Test//def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/alias/no_prelude/import_order.carbon b/toolchain/check/testdata/alias/no_prelude/import_order.carbon index 22213655969b..cc36f5e48ddc 100644 --- a/toolchain/check/testdata/alias/no_prelude/import_order.carbon +++ b/toolchain/check/testdata/alias/no_prelude/import_order.carbon @@ -92,7 +92,7 @@ var a_val: a = {.v = b_val.v}; // CHECK:STDOUT: %Main.c: type = import_ref Main//a, c, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.d: type = import_ref Main//a, d, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.146: = import_ref Main//a, loc4_22, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f99: %C.elem = import_ref Main//a, loc4_16, loaded [concrete = %.2fc] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/builtin_insts.carbon b/toolchain/check/testdata/basics/builtin_insts.carbon index 87044c07a0b5..7d58483344b5 100644 --- a/toolchain/check/testdata/basics/builtin_insts.carbon +++ b/toolchain/check/testdata/basics/builtin_insts.carbon @@ -17,7 +17,7 @@ // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: functions: {} // CHECK:STDOUT: classes: {} @@ -40,6 +40,7 @@ // CHECK:STDOUT: 'inst(BoolType)': {kind: BoolType, type: type(TypeType)} // CHECK:STDOUT: 'inst(BoundMethodType)': {kind: BoundMethodType, type: type(TypeType)} // CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)} +// 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(LegacyFloatType)': {kind: LegacyFloatType, type: type(TypeType)} @@ -48,13 +49,14 @@ // CHECK:STDOUT: 'inst(StringType)': {kind: StringType, type: type(TypeType)} // CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)} // CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)} -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType)) // CHECK:STDOUT: 'inst(AutoType)': concrete_constant(inst(AutoType)) // CHECK:STDOUT: 'inst(BoolType)': concrete_constant(inst(BoolType)) // CHECK:STDOUT: 'inst(BoundMethodType)': concrete_constant(inst(BoundMethodType)) // CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst)) +// 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(LegacyFloatType)': concrete_constant(inst(LegacyFloatType)) @@ -63,7 +65,7 @@ // CHECK:STDOUT: 'inst(StringType)': concrete_constant(inst(StringType)) // CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType)) // CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType)) -// CHECK:STDOUT: inst13: concrete_constant(inst13) +// CHECK:STDOUT: inst14: concrete_constant(inst14) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} @@ -71,5 +73,5 @@ // CHECK:STDOUT: import_refs: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: -// CHECK:STDOUT: 0: inst13 +// CHECK:STDOUT: 0: inst14 // CHECK:STDOUT: ... diff --git a/toolchain/check/testdata/class/cross_package_import.carbon b/toolchain/check/testdata/class/cross_package_import.carbon index 6ecb17a9b0b2..774477395bbb 100644 --- a/toolchain/check/testdata/class/cross_package_import.carbon +++ b/toolchain/check/testdata/class/cross_package_import.carbon @@ -204,7 +204,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -312,7 +312,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -372,7 +372,7 @@ var c: Other.C = {}; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//other_define, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//other_define, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst17 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//other_define, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/fail_import_misuses.carbon b/toolchain/check/testdata/class/fail_import_misuses.carbon index 117849931807..dd62130ff4cb 100644 --- a/toolchain/check/testdata/class/fail_import_misuses.carbon +++ b/toolchain/check/testdata/class/fail_import_misuses.carbon @@ -99,7 +99,7 @@ var a: Incomplete; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc5_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index cf15f6eedca0..3c2d2e76f492 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -295,10 +295,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//adapt_specific_type, loc4_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.b5f: = import_ref Main//adapt_specific_type, loc6_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//adapt_specific_type, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//adapt_specific_type, inst27 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//adapt_specific_type, loc5_8, loaded [concrete = %.22b] // CHECK:STDOUT: %Main.import_ref.709: = import_ref Main//adapt_specific_type, loc10_1, loaded [concrete = constants.%complete_type.c07] -// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//adapt_specific_type, inst44 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//adapt_specific_type, inst45 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -664,10 +664,10 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//extend_adapt_specific_type_library, loc7_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.b5f: = import_ref Main//extend_adapt_specific_type_library, loc9_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.433)] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_adapt_specific_type_library, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_adapt_specific_type_library, inst27 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.262: @C.%C.elem (%C.elem.66c) = import_ref Main//extend_adapt_specific_type_library, loc8_8, loaded [concrete = %.22b] // CHECK:STDOUT: %Main.import_ref.709: = import_ref Main//extend_adapt_specific_type_library, loc13_1, loaded [concrete = constants.%complete_type.c07] -// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//extend_adapt_specific_type_library, inst44 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.feb = import_ref Main//extend_adapt_specific_type_library, inst45 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.19d12e.2: type = import_ref Main//extend_adapt_specific_type_library, loc12_21, loaded [concrete = constants.%C.239] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -895,7 +895,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//adapt_generic_type, loc4_15, loaded [symbolic = @Adapter.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.fb3: = import_ref Main//adapt_generic_type, loc6_1, loaded [symbolic = @Adapter.%complete_type (constants.%complete_type.f87)] -// CHECK:STDOUT: %Main.import_ref.9a3 = import_ref Main//adapt_generic_type, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.9a3 = import_ref Main//adapt_generic_type, inst27 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index aff17e6a1623..9d4712133c1f 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -283,14 +283,14 @@ fn H() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.e8d: = import_ref Main//extend_generic_base, loc10_1, loaded [concrete = constants.%complete_type.09d] -// CHECK:STDOUT: %Main.import_ref.446 = import_ref Main//extend_generic_base, inst44 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.446 = import_ref Main//extend_generic_base, inst45 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.a92: %Param.elem = import_ref Main//extend_generic_base, loc9_8, loaded [concrete = %.be7] // CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//extend_generic_base, loc4_17, loaded [symbolic = @Base.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.b5f: = import_ref Main//extend_generic_base, loc6_1, loaded [symbolic = @Base.%complete_type (constants.%complete_type.433)] -// CHECK:STDOUT: %Main.import_ref.8e0 = import_ref Main//extend_generic_base, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8e0 = import_ref Main//extend_generic_base, inst27 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.7f7: @Base.%Base.elem (%Base.elem.9af) = import_ref Main//extend_generic_base, loc5_8, loaded [concrete = %.e66] // CHECK:STDOUT: %Main.import_ref.bd0: = import_ref Main//extend_generic_base, loc14_1, loaded [concrete = constants.%complete_type.b07] -// CHECK:STDOUT: %Main.import_ref.f6c = import_ref Main//extend_generic_base, inst81 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.f6c = import_ref Main//extend_generic_base, inst82 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.d24 = import_ref Main//extend_generic_base, loc13_27, unloaded // CHECK:STDOUT: %Main.import_ref.77a301.2: type = import_ref Main//extend_generic_base, loc13_26, loaded [concrete = constants.%Base.7a8] // CHECK:STDOUT: } @@ -791,11 +791,11 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//extend_generic_symbolic_base, loc6_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.e8e = import_ref Main//extend_generic_symbolic_base, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e8e = import_ref Main//extend_generic_symbolic_base, inst27 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b8a: @X.%G.type (%G.type.56f312.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%G (constants.%G.b504c4.1)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//extend_generic_symbolic_base, loc8_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.93f: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.768)] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_generic_symbolic_base, inst65 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//extend_generic_symbolic_base, inst66 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.65d = import_ref Main//extend_generic_symbolic_base, loc9_20, unloaded // CHECK:STDOUT: %Main.import_ref.561eb2.2: type = import_ref Main//extend_generic_symbolic_base, loc9_19, loaded [symbolic = @C.%X (constants.%X.75b6d8.2)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)] diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 67f9f795d535..0ec3e76578d5 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -300,7 +300,7 @@ class Class(U:! type) { // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc4_13, loaded [symbolic = @Class.%T.1 (constants.%T)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.a68] -// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.051 = import_ref Main//foo, loc7_8, unloaded // CHECK:STDOUT: %Main.import_ref.570 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] @@ -476,7 +476,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.54b] -// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e76: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.28a) = import_ref Main//foo, loc7_8, loaded [concrete = %.364] // CHECK:STDOUT: %Main.import_ref.a52: @CompleteClass.%F.type (%F.type.14f) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%F (constants.%F.874)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] @@ -666,7 +666,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.a68] -// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst34 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3c0 = import_ref Main//foo, inst35 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.051 = import_ref Main//foo, loc7_8, unloaded // CHECK:STDOUT: %Main.import_ref.570 = import_ref Main//foo, loc8_17, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] diff --git a/toolchain/check/testdata/class/import.carbon b/toolchain/check/testdata/class/import.carbon index 59ba98034ac0..1404981b8234 100644 --- a/toolchain/check/testdata/class/import.carbon +++ b/toolchain/check/testdata/class/import.carbon @@ -208,16 +208,16 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//a, loc5_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fd7 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.709: = import_ref Main//a, loc9_1, loaded [concrete = constants.%complete_type.c07] -// CHECK:STDOUT: %Main.import_ref.845 = import_ref Main//a, inst22 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.845 = import_ref Main//a, inst23 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4d2: %Field.elem = import_ref Main//a, loc8_8, loaded [concrete = %.d33] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.39e731.1 = import_ref Main//a, inst60 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.39e731.1 = import_ref Main//a, inst61 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.760: %F.type = import_ref Main//a, loc14_21, loaded [concrete = constants.%F] // CHECK:STDOUT: %Main.import_ref.26e: %G.type = import_ref Main//a, loc15_27, loaded [concrete = constants.%G] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//a, loc16_1, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Main.import_ref.39e731.2 = import_ref Main//a, inst60 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.39e731.2 = import_ref Main//a, inst61 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.42a = import_ref Main//a, loc14_21, unloaded // CHECK:STDOUT: %Main.import_ref.67a = import_ref Main//a, loc15_27, unloaded // CHECK:STDOUT: } @@ -364,5 +364,5 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: fn @F[%self.param_patt: %ForwardDeclared.7b34f2.1]() [from "a.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @G[addr .inst1143: %ptr.6cf]() [from "a.carbon"]; +// CHECK:STDOUT: fn @G[addr .inst1144: %ptr.6cf]() [from "a.carbon"]; // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_base.carbon b/toolchain/check/testdata/class/import_base.carbon index eade97bb5d75..9c2384835e60 100644 --- a/toolchain/check/testdata/class/import_base.carbon +++ b/toolchain/check/testdata/class/import_base.carbon @@ -181,13 +181,13 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.239: = import_ref Main//a, loc10_1, loaded [concrete = constants.%complete_type.90f] -// CHECK:STDOUT: %Main.import_ref.1f3 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.1f3 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e8f: %F.type = import_ref Main//a, loc5_21, loaded [concrete = constants.%F] // CHECK:STDOUT: %Main.import_ref.8bf = import_ref Main//a, loc6_26, unloaded // CHECK:STDOUT: %Main.import_ref.e67: %Base.elem = import_ref Main//a, loc8_8, loaded [concrete = %.720] // CHECK:STDOUT: %Main.import_ref.2e4 = import_ref Main//a, loc9_13, unloaded // CHECK:STDOUT: %Main.import_ref.c5f: = import_ref Main//a, loc14_1, loaded [concrete = constants.%complete_type.15c] -// CHECK:STDOUT: %Main.import_ref.9a9 = import_ref Main//a, inst77 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.9a9 = import_ref Main//a, inst78 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.7e5 = import_ref Main//a, loc13_20, unloaded // CHECK:STDOUT: %Main.import_ref.a21640.2: type = import_ref Main//a, loc13_16, loaded [concrete = constants.%Base] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/class/import_indirect.carbon b/toolchain/check/testdata/class/import_indirect.carbon index bf3696eda180..1386ab39f26f 100644 --- a/toolchain/check/testdata/class/import_indirect.carbon +++ b/toolchain/check/testdata/class/import_indirect.carbon @@ -149,7 +149,7 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -219,7 +219,7 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -292,7 +292,7 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -365,7 +365,7 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -439,8 +439,8 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst23 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -516,8 +516,8 @@ var ptr: E* = &val; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst23 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//b, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//b, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/import_member_cycle.carbon b/toolchain/check/testdata/class/import_member_cycle.carbon index cc6fa12bfcb4..256fddb9b332 100644 --- a/toolchain/check/testdata/class/import_member_cycle.carbon +++ b/toolchain/check/testdata/class/import_member_cycle.carbon @@ -85,7 +85,7 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.72d: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4e0 = import_ref Main//a, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/import_struct_cyle.carbon b/toolchain/check/testdata/class/import_struct_cyle.carbon index 21c28948734b..435bd942a6ef 100644 --- a/toolchain/check/testdata/class/import_struct_cyle.carbon +++ b/toolchain/check/testdata/class/import_struct_cyle.carbon @@ -107,7 +107,7 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.b93: = import_ref Main//a, loc11_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.3a6 = import_ref Main//a, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.455: %Cycle.elem = import_ref Main//a, loc10_8, loaded [concrete = %.354] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/destroy_calls.carbon b/toolchain/check/testdata/class/no_prelude/destroy_calls.carbon index 6db36746934d..b8c8ee568041 100644 --- a/toolchain/check/testdata/class/no_prelude/destroy_calls.carbon +++ b/toolchain/check/testdata/class/no_prelude/destroy_calls.carbon @@ -266,15 +266,15 @@ fn G() { F({}); } // CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn] // CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b5b = import_ref Main//types, loc5_22, unloaded // CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b14 = import_ref Main//types, loc10_30, unloaded // CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//types, loc15_24, unloaded // CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0] // CHECK:STDOUT: } @@ -359,7 +359,7 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: fn @destroy.2[%self.param_patt: %ExplicitReturn]() -> %empty_tuple.type [from "types.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @destroy.3[addr .inst82: %ptr.b4e]() [from "types.carbon"]; +// CHECK:STDOUT: fn @destroy.3[addr .inst83: %ptr.b4e]() [from "types.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: --- nested_scope.carbon // CHECK:STDOUT: @@ -387,15 +387,15 @@ fn G() { F({}); } // CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn] // CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b5b = import_ref Main//types, loc5_22, unloaded // CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.b14 = import_ref Main//types, loc10_30, unloaded // CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//types, loc15_24, unloaded // CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0] // CHECK:STDOUT: } @@ -496,7 +496,7 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: fn @destroy.2[%self.param_patt: %ExplicitReturn]() -> %empty_tuple.type [from "types.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @destroy.3[addr .inst82: %ptr.b4e]() [from "types.carbon"]; +// CHECK:STDOUT: fn @destroy.3[addr .inst83: %ptr.b4e]() [from "types.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: --- temp.carbon // CHECK:STDOUT: @@ -529,15 +529,15 @@ fn G() { F({}); } // CHECK:STDOUT: %Main.ExplicitReturn: type = import_ref Main//types, ExplicitReturn, loaded [concrete = constants.%ExplicitReturn] // CHECK:STDOUT: %Main.WithAddr: type = import_ref Main//types, WithAddr, loaded [concrete = constants.%WithAddr] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc7_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.f42 = import_ref Main//types, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.784: %Make.type.bc9 = import_ref Main//types, loc5_22, loaded [concrete = constants.%Make.1be] // CHECK:STDOUT: %Main.import_ref.7fe: %destroy.type.bc5 = import_ref Main//types, loc6_27, loaded [concrete = constants.%destroy.60f] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//types, loc12_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst37 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ee7 = import_ref Main//types, inst38 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8e0: %Make.type.378 = import_ref Main//types, loc10_30, loaded [concrete = constants.%Make.960] // CHECK:STDOUT: %Main.import_ref.83a: %destroy.type.dfa = import_ref Main//types, loc11_33, loaded [concrete = constants.%destroy.539] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//types, loc17_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst62 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.95d = import_ref Main//types, inst63 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.974: %Make.type.e14 = import_ref Main//types, loc15_24, loaded [concrete = constants.%Make.b0a] // CHECK:STDOUT: %Main.import_ref.54e: %destroy.type.02f = import_ref Main//types, loc16_33, loaded [concrete = constants.%destroy.8d0] // CHECK:STDOUT: } @@ -622,7 +622,7 @@ fn G() { F({}); } // CHECK:STDOUT: // CHECK:STDOUT: fn @Make.3() -> %WithAddr [from "types.carbon"]; // CHECK:STDOUT: -// CHECK:STDOUT: fn @destroy.3[addr .inst92: %ptr.b4e]() [from "types.carbon"]; +// CHECK:STDOUT: fn @destroy.3[addr .inst93: %ptr.b4e]() [from "types.carbon"]; // CHECK:STDOUT: // CHECK:STDOUT: --- fail_recovery.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/no_prelude/export_name.carbon b/toolchain/check/testdata/class/no_prelude/export_name.carbon index 3ca64e6452e8..ca6c6e201d4b 100644 --- a/toolchain/check/testdata/class/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/class/no_prelude/export_name.carbon @@ -72,7 +72,7 @@ var c: C = {}; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//base, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -101,8 +101,8 @@ var c: C = {}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst20 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst21 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//export, inst21 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst22 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/extern.carbon b/toolchain/check/testdata/class/no_prelude/extern.carbon index 497396c92c28..a7bf46f50dfd 100644 --- a/toolchain/check/testdata/class/no_prelude/extern.carbon +++ b/toolchain/check/testdata/class/no_prelude/extern.carbon @@ -606,7 +606,7 @@ extern class C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -634,7 +634,7 @@ extern class C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/fail_abstract_in_struct.carbon b/toolchain/check/testdata/class/no_prelude/fail_abstract_in_struct.carbon index aebe88f38f70..2c6a273ddb9e 100644 --- a/toolchain/check/testdata/class/no_prelude/fail_abstract_in_struct.carbon +++ b/toolchain/check/testdata/class/no_prelude/fail_abstract_in_struct.carbon @@ -439,7 +439,7 @@ fn Var5() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Abstract: type = import_ref Main//lib, Abstract, loaded [concrete = constants.%Abstract] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/fail_abstract_in_tuple.carbon b/toolchain/check/testdata/class/no_prelude/fail_abstract_in_tuple.carbon index 957474bdb594..859384fdb7f7 100644 --- a/toolchain/check/testdata/class/no_prelude/fail_abstract_in_tuple.carbon +++ b/toolchain/check/testdata/class/no_prelude/fail_abstract_in_tuple.carbon @@ -448,7 +448,7 @@ fn Var5() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Abstract: type = import_ref Main//lib, Abstract, loaded [concrete = constants.%Abstract] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//lib, loc3_26, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ee1 = import_ref Main//lib, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon index e3aed82ff35e..a490ed72fb59 100644 --- a/toolchain/check/testdata/class/no_prelude/implicit_import.carbon +++ b/toolchain/check/testdata/class/no_prelude/implicit_import.carbon @@ -157,7 +157,7 @@ class B {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//redecl_after_def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redecl_after_def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redecl_after_def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -211,7 +211,7 @@ class B {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//redef_after_def, C, loaded [concrete = constants.%C.f794a0.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//redef_after_def, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redef_after_def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//redef_after_def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/import_access.carbon b/toolchain/check/testdata/class/no_prelude/import_access.carbon index a38dbf58ecbf..b527471e3c67 100644 --- a/toolchain/check/testdata/class/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/class/no_prelude/import_access.carbon @@ -210,7 +210,7 @@ private class Redecl {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//def, loc4_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.4ce = import_ref Test//def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.4ce = import_ref Test//def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -323,7 +323,7 @@ private class Redecl {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef] // CHECK:STDOUT: %Test.import_ref.8f2: = import_ref Test//forward_with_def, loc6_23, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Test.import_ref.414 = import_ref Test//forward_with_def, inst15 [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref.414 = import_ref Test//forward_with_def, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon index d15b36c1a1f7..45caeab5b5fc 100644 --- a/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon +++ b/toolchain/check/testdata/class/no_prelude/indirect_import_member.carbon @@ -156,7 +156,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.2cf = import_ref Main//a, loc5_10, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -200,9 +200,9 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.230 = import_ref Main//c, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.230 = import_ref Main//c, inst23 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -261,7 +261,7 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//a, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.943: %F.type = import_ref Main//a, loc5_10, loaded [concrete = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -315,9 +315,9 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst22 [indirect], loaded [concrete = constants.%F] +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst23 [indirect], loaded [concrete = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -370,9 +370,9 @@ var x: () = D.C.F(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//c, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst20 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst21 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst22 [indirect], loaded [concrete = constants.%F] +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//c, inst21 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//c, inst22 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.5d3: %F.type = import_ref Main//c, inst23 [indirect], loaded [concrete = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -427,11 +427,11 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst23 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst24 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst25 [indirect], loaded [concrete = constants.%F] +// CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst24 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst25 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst26 [indirect], loaded [concrete = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -495,11 +495,11 @@ var x: () = D.C.F(); // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.D: type = import_ref Main//e, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//e, loc8_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//e, inst18 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.bf1: type = import_ref Main//e, loc7_9, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst23 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst24 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst25 [indirect], loaded [concrete = constants.%F] +// CHECK:STDOUT: %Main.import_ref.8f3: = import_ref Main//e, inst24 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//e, inst25 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.c85: %F.type = import_ref Main//e, inst26 [indirect], loaded [concrete = constants.%F] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon index eec046c182d5..0f518eb66366 100644 --- a/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/class/no_prelude/syntactic_merge.carbon @@ -567,7 +567,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_11, loaded [symbolic = @Foo.%a.1 (constants.%a)] // CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_11, loaded [symbolic = @Bar.%a.1 (constants.%a)] // CHECK:STDOUT: } @@ -940,7 +940,7 @@ fn Base.F[addr self: Base*]() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_11, loaded [symbolic = @Foo.%a.1 (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index 09030fcacbd1..436e9f27bcf4 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -413,7 +413,7 @@ class T2 { // CHECK:STDOUT: } // CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base] // CHECK:STDOUT: %Modifiers.import_ref.05e: = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type.513] -// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded // CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -518,7 +518,7 @@ class T2 { // CHECK:STDOUT: } // CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base] // CHECK:STDOUT: %Modifiers.import_ref.05e: = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type.513] -// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded // CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -593,7 +593,7 @@ class T2 { // CHECK:STDOUT: %Modifiers.Base: type = import_ref Modifiers//default, Base, loaded [concrete = constants.%Base] // CHECK:STDOUT: %Modifiers.import_ref.ace = import_ref Modifiers//default, loc6_1, unloaded // CHECK:STDOUT: %Modifiers.import_ref.05e: = import_ref Modifiers//default, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst17 [no loc], unloaded +// CHECK:STDOUT: %Modifiers.import_ref.1f3 = import_ref Modifiers//default, inst18 [no loc], unloaded // CHECK:STDOUT: %Modifiers.import_ref.2cc = import_ref Modifiers//default, loc5_29, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/min_prelude/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/min_prelude/call_combined_impl_witness.carbon index f59fd618dbf0..78c3d3ac9e2e 100644 --- a/toolchain/check/testdata/facet/min_prelude/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/min_prelude/call_combined_impl_witness.carbon @@ -130,10 +130,10 @@ fn F() { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T.8b3)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T.8b3)] diff --git a/toolchain/check/testdata/facet/min_prelude/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/facet/min_prelude/convert_facet_value_to_narrowed_facet_type.carbon index 8a9f75780989..02fb0e5cfd4d 100644 --- a/toolchain/check/testdata/facet/min_prelude/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/facet/min_prelude/convert_facet_value_to_narrowed_facet_type.carbon @@ -141,10 +141,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T.8b3)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T.8b3)] @@ -420,10 +420,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T)] @@ -734,10 +734,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)] diff --git a/toolchain/check/testdata/facet/min_prelude/fail_deduction_uses_runtime_type_conversion.carbon b/toolchain/check/testdata/facet/min_prelude/fail_deduction_uses_runtime_type_conversion.carbon index f930af7939e4..430d3200f58f 100644 --- a/toolchain/check/testdata/facet/min_prelude/fail_deduction_uses_runtime_type_conversion.carbon +++ b/toolchain/check/testdata/facet/min_prelude/fail_deduction_uses_runtime_type_conversion.carbon @@ -103,11 +103,11 @@ fn G(holds_to: HoldsType((RuntimeConvertTo, ))) { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc12_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc12_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/min_prelude/runtime_value.carbon b/toolchain/check/testdata/facet/min_prelude/runtime_value.carbon index 244e2becd6fc..cb6250de45a2 100644 --- a/toolchain/check/testdata/facet/min_prelude/runtime_value.carbon +++ b/toolchain/check/testdata/facet/min_prelude/runtime_value.carbon @@ -177,10 +177,10 @@ fn F(T: Z(C)) -> T.(Z(C).X) { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.%T (constants.%T)] @@ -402,6 +402,7 @@ fn F(T: Z(C)) -> T.(Z(C).X) { // CHECK:STDOUT: %T.loc8_20.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc8_20.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %Z.type.049 = binding_pattern T // CHECK:STDOUT: %T.param_patt: %Z.type.049 = value_param_pattern %T.patt, call_param0 diff --git a/toolchain/check/testdata/facet/no_prelude/access.carbon b/toolchain/check/testdata/facet/no_prelude/access.carbon index 655f7109304f..ea856e1382fd 100644 --- a/toolchain/check/testdata/facet/no_prelude/access.carbon +++ b/toolchain/check/testdata/facet/no_prelude/access.carbon @@ -892,6 +892,7 @@ interface J { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %v.patt: = binding_pattern v // CHECK:STDOUT: %.loc12_1: = var_pattern %v.patt @@ -1173,10 +1174,10 @@ interface J { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//to_import, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//to_import, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.33a = import_ref Main//to_import, loc4_8, unloaded // CHECK:STDOUT: %Main.T = import_ref Main//to_import, T, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//to_import, inst16 [no loc], loaded [symbolic = constants.%Self.826] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//to_import, inst17 [no loc], loaded [symbolic = constants.%Self.826] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon index f1b8dec5f7a0..a0a12fe8a4d8 100644 --- a/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon @@ -671,13 +671,13 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc11_14, loaded [symbolic = @As.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.a7c = import_ref Core//default, inst84 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.a7c = import_ref Core//default, inst85 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.5e1: @As.%As.assoc_type (%As.assoc_type.760) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%assoc0 (constants.%assoc0.97d)] // CHECK:STDOUT: %Core.Convert.313 = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc11_14, loaded [symbolic = @As.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.996: @As.%As.type (%As.type.eed) = import_ref Core//default, inst84 [no loc], loaded [symbolic = @As.%Self (constants.%Self.65a)] +// CHECK:STDOUT: %Core.import_ref.996: @As.%As.type (%As.type.eed) = import_ref Core//default, inst85 [no loc], loaded [symbolic = @As.%Self (constants.%Self.65a)] // CHECK:STDOUT: %Core.import_ref.708: @As.%Convert.type (%Convert.type.843) = import_ref Core//default, loc12_32, loaded [symbolic = @As.%Convert (constants.%Convert.95f)] -// CHECK:STDOUT: %Core.import_ref.07c = import_ref Core//default, inst40 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.07c = import_ref Core//default, inst41 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.f6c: %Add.assoc_type = import_ref Core//default, loc8_41, loaded [concrete = constants.%assoc0.c7d] // CHECK:STDOUT: %Core.Op = import_ref Core//default, Op, unloaded // CHECK:STDOUT: %Core.import_ref.595: = import_ref Core//default, loc19_17, loaded [concrete = constants.%impl_witness.bd0] @@ -687,19 +687,19 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Core.import_ref.8721d7.1: type = import_ref Core//default, loc23_17, loaded [concrete = Core.IntLiteral] // CHECK:STDOUT: %Core.import_ref.1e5: type = import_ref Core//default, loc23_28, loaded [concrete = constants.%As.type.a6d] // CHECK:STDOUT: %Core.import_ref.5ab3ec.3: type = import_ref Core//default, loc15_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst125 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst126 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc16_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc001e.2)] // CHECK:STDOUT: %Core.Convert.e69 = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.de9: = import_ref Core//default, loc27_38, loaded [concrete = constants.%impl_witness.39c] // CHECK:STDOUT: %Core.import_ref.8721d7.2: type = import_ref Core//default, loc27_17, loaded [concrete = Core.IntLiteral] // CHECK:STDOUT: %Core.import_ref.4d9: type = import_ref Core//default, loc27_36, loaded [concrete = constants.%ImplicitAs.type.61e] // CHECK:STDOUT: %Core.import_ref.5ab3ec.4: type = import_ref Core//default, loc15_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst125 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst126 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.207961.1 = import_ref Core//default, loc16_32, unloaded // CHECK:STDOUT: %Core.import_ref.3b6: = import_ref Core//default, loc31_38, loaded [concrete = constants.%impl_witness.8f3] // CHECK:STDOUT: %Core.import_ref.c8c7cd.2: type = import_ref Core//default, loc31_6, loaded [concrete = constants.%i32.builtin] // CHECK:STDOUT: %Core.import_ref.efb: type = import_ref Core//default, loc31_36, loaded [concrete = constants.%ImplicitAs.type.2fd] -// CHECK:STDOUT: %Core.import_ref.442: %Add.type = import_ref Core//default, inst40 [no loc], loaded [symbolic = constants.%Self.a99] +// CHECK:STDOUT: %Core.import_ref.442: %Add.type = import_ref Core//default, inst41 [no loc], loaded [symbolic = constants.%Self.a99] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon index 47a53aa90826..579d7a422e19 100644 --- a/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/no_prelude/fail_import_incomplete_return.carbon @@ -206,7 +206,7 @@ fn CallFAndGIncomplete() { // CHECK:STDOUT: %Main.ReturnDUsed: %ReturnDUsed.type = import_ref Main//incomplete_return, ReturnDUsed, loaded [concrete = constants.%ReturnDUsed] // CHECK:STDOUT: %Main.Call = import_ref Main//incomplete_return, Call, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//incomplete_return, loc37_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//incomplete_return, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//incomplete_return, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon index de7cf0cf3527..bd92e8f21fda 100644 --- a/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon @@ -518,7 +518,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: %Main.C: type = import_ref Main//two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//two_file, D, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -850,7 +850,7 @@ fn Foo(a: const (const C)) {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/function/generic/no_prelude/fail_deduce_imported_function.carbon b/toolchain/check/testdata/function/generic/no_prelude/fail_deduce_imported_function.carbon index cb3b7e933976..71cc0867f9bd 100644 --- a/toolchain/check/testdata/function/generic/no_prelude/fail_deduce_imported_function.carbon +++ b/toolchain/check/testdata/function/generic/no_prelude/fail_deduce_imported_function.carbon @@ -135,7 +135,7 @@ fn B() { // CHECK:STDOUT: import Lib//default // CHECK:STDOUT: } // CHECK:STDOUT: %Lib.Z: type = import_ref Lib//default, Z, loaded [concrete = constants.%Z.type] -// CHECK:STDOUT: %Lib.import_ref.f88 = import_ref Lib//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %Lib.import_ref.f88 = import_ref Lib//default, inst17 [no loc], unloaded // CHECK:STDOUT: %Lib.A: %A.type.fad = import_ref Lib//default, A, loaded [concrete = constants.%A.7a0] // CHECK:STDOUT: %Lib.import_ref.be7: %Z.type = import_ref Lib//default, loc4_6, loaded [symbolic = @A.2.%T (constants.%T)] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon index accff96f5a1d..702a751481bc 100644 --- a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon +++ b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon @@ -94,7 +94,7 @@ class C { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: %i32 = bind_name x, .inst1065.loc27_14 +// CHECK:STDOUT: %x: %i32 = bind_name x, .inst1066.loc27_14 // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %y.patt: %i32 = binding_pattern y // CHECK:STDOUT: %.loc37: %i32 = var_pattern %y.patt diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index 032f39446c86..30e9abc2007a 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -176,6 +176,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc8: = impl_witness (constants.%empty_struct) [concrete = constants.%impl_witness.a4f] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc8: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: impl_decl @impl.a12 [concrete] {} { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] @@ -200,6 +201,7 @@ fn CallF() { // CHECK:STDOUT: %int.convert_checked: init %i32 = call %bound_method.loc10_15.2(constants.%int_0.5c6) [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc10_15.1: %i32 = value_of_initializer %int.convert_checked [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc10_15.2: %i32 = converted constants.%int_0.5c6, %.loc10_15.1 [concrete = constants.%int_0.6a9] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: %i32 = impl_witness_assoc_constant constants.%int_0.6a9 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { @@ -312,6 +314,7 @@ fn CallF() { // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete = constants.%impl_witness] // CHECK:STDOUT: %.loc15: %empty_struct_type = converted constants.%int_0, [concrete = ] +// CHECK:STDOUT: %impl_witness_assoc_constant: = impl_witness_assoc_constant [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { @@ -445,6 +448,7 @@ fn CallF() { // CHECK:STDOUT: %.loc18_13.2: init %C = converted constants.%empty_tuple, %Convert.call // CHECK:STDOUT: %.loc18_13.3: ref %C = temporary %.loc18_13.1, %.loc18_13.2 // CHECK:STDOUT: %.loc18_13.4: %C = bind_value %.loc18_13.3 +// CHECK:STDOUT: %impl_witness_assoc_constant: = impl_witness_assoc_constant [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { diff --git a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon index 24fa59e2609a..3c3e904614e5 100644 --- a/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon +++ b/toolchain/check/testdata/impl/fail_extend_impl_forall.carbon @@ -37,7 +37,7 @@ class C { // CHECK:STDOUT: %assoc0: %GenericInterface.assoc_type = assoc_entity element0, @GenericInterface.%F.decl [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %require_complete.70f: = require_complete_type %GenericInterface.type.3fe [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(%T) [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(%T) [symbolic] // CHECK:STDOUT: %F.type.2cb: type = fn_type @F.2, @impl(%T) [symbolic] // CHECK:STDOUT: %F.4b1: %F.type.2cb = struct_value () [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -104,7 +104,7 @@ class C { // CHECK:STDOUT: %T.patt.loc20_23.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc20_23.2 (constants.%T.patt)] // CHECK:STDOUT: %GenericInterface.type.loc20_54.2: type = facet_type <@GenericInterface, @GenericInterface(%T.loc20_23.2)> [symbolic = %GenericInterface.type.loc20_54.2 (constants.%GenericInterface.type.3fe)] // CHECK:STDOUT: %require_complete: = require_complete_type @impl.%GenericInterface.type.loc20_54.2 (%GenericInterface.type.3fe) [symbolic = %require_complete (constants.%require_complete.70f)] -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(%T.loc20_23.2) [symbolic = %impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(%T.loc20_23.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc20_23.2) [symbolic = %F.type (constants.%F.type.2cb)] @@ -137,7 +137,7 @@ class C { // CHECK:STDOUT: %GenericInterface.type.loc20_54.1: type = facet_type <@GenericInterface, @GenericInterface(constants.%T)> [symbolic = %GenericInterface.type.loc20_54.2 (constants.%GenericInterface.type.3fe)] // CHECK:STDOUT: %T.loc20_23.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc20_23.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness)] // CHECK:STDOUT: %.loc20: type = specific_constant @impl.%GenericInterface.type.loc20_54.1, @impl(constants.%T) [symbolic = constants.%GenericInterface.type.3fe] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type] // CHECK:STDOUT: complete_type_witness = %complete_type diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 778a9d720585..6c8d13200f5c 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -1035,7 +1035,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt: type = symbolic_binding_pattern T, 0 [symbolic] // CHECK:STDOUT: %U: type = bind_symbolic_name U, 1 [symbolic] // CHECK:STDOUT: %U.patt: type = symbolic_binding_pattern U, 1 [symbolic] -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(%T, %U) [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(%T, %U) [symbolic] // CHECK:STDOUT: %F.type.56e: type = fn_type @F.2, @impl(%T, %U) [symbolic] // CHECK:STDOUT: %F.9b8: %F.type.56e = struct_value () [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %T [symbolic] @@ -1068,7 +1068,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.loc12_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc12_14.2 (constants.%T)] // CHECK:STDOUT: %U.loc12_24.1: type = bind_symbolic_name U, 1 [symbolic = %U.loc12_24.2 (constants.%U)] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(constants.%T, constants.%U) [symbolic = @impl.%impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(constants.%T, constants.%U) [symbolic = @impl.%impl_witness (constants.%impl_witness)] // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_struct_type = value_param_pattern %x.patt, call_param0 @@ -1109,7 +1109,7 @@ fn G(x: A) { // CHECK:STDOUT: %T.patt.loc12_14.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_14.2 (constants.%T.patt)] // CHECK:STDOUT: %U.loc12_24.2: type = bind_symbolic_name U, 1 [symbolic = %U.loc12_24.2 (constants.%U)] // CHECK:STDOUT: %U.patt.loc12_24.2: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc12_24.2 (constants.%U.patt)] -// CHECK:STDOUT: %impl_witness: = impl_witness (invalid), @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (), @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %F.type: type = fn_type @F.2, @impl(%T.loc12_14.2, %U.loc12_24.2) [symbolic = %F.type (constants.%F.type.56e)] diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon index a556812ce592..33cbcee99752 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/import.carbon @@ -360,12 +360,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded // CHECK:STDOUT: %PackageA.import_ref.c63 = import_ref PackageA//default, loc5_21, unloaded // CHECK:STDOUT: %PackageA.F: %F.type.dbc = import_ref PackageA//default, F, loaded [concrete = constants.%F.a2b] -// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self.cf3] +// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self.cf3] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -569,12 +569,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded // CHECK:STDOUT: %PackageA.import_ref.b36: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %PackageA.import_ref.a71: = import_ref PackageA//default, loc11_16, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %PackageA.import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] @@ -679,18 +679,18 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded // CHECK:STDOUT: %PackageA.HasF: type = import_ref PackageA//default, HasF, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded // CHECK:STDOUT: %PackageA.import_ref.b36: %HasF.assoc_type = import_ref PackageA//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded -// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst16 [no loc], loaded [symbolic = constants.%Self.cf3] +// CHECK:STDOUT: %PackageA.import_ref.e73: %HasF.type = import_ref PackageA//default, inst17 [no loc], loaded [symbolic = constants.%Self.cf3] // CHECK:STDOUT: %PackageA.import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageA.import_ref.29a: type = import_ref PackageA//default, loc11_6, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.e8c: type = import_ref PackageA//default, loc11_11, loaded [concrete = constants.%HasF.type] -// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded // CHECK:STDOUT: %PackageB.import_ref.910 = import_ref PackageB//default, loc7_21, unloaded // CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded // CHECK:STDOUT: %PackageB.import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded @@ -834,13 +834,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageA.C: type = import_ref PackageA//default, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageA.import_ref.8f2: = import_ref PackageA//default, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageA.import_ref.2c4 = import_ref PackageA//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded // CHECK:STDOUT: %PackageB.import_ref.6c2: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst18 [no loc], loaded [symbolic = constants.%Self.fcb] -// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst19 [no loc], loaded [symbolic = constants.%Self.fcb] +// CHECK:STDOUT: %PackageA.import_ref.28c = import_ref PackageA//default, inst17 [no loc], unloaded // CHECK:STDOUT: %PackageA.import_ref.c63 = import_ref PackageA//default, loc5_21, unloaded // CHECK:STDOUT: %PackageA.F = import_ref PackageA//default, F, unloaded // CHECK:STDOUT: %PackageA.import_ref.0e8 = import_ref PackageA//default, loc11_16, unloaded @@ -851,7 +851,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageB.import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] // CHECK:STDOUT: %PackageB.import_ref.7db = import_ref PackageB//default, loc18_25, unloaded // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded // CHECK:STDOUT: %PackageB.import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D] // CHECK:STDOUT: %PackageB.import_ref.831: type = import_ref PackageB//default, loc18_19, loaded [concrete = constants.%HasF.type] // CHECK:STDOUT: %PackageB.import_ref.231 = import_ref PackageB//default, loc23_16, unloaded @@ -986,19 +986,19 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: } // CHECK:STDOUT: %PackageB.D: type = import_ref PackageB//default, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %PackageB.import_ref.8f2: = import_ref PackageB//default, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst39 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.cab = import_ref PackageB//default, inst40 [no loc], unloaded // CHECK:STDOUT: %PackageB.HasG: type = import_ref PackageB//default, HasG, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst18 [no loc], unloaded +// CHECK:STDOUT: %PackageB.import_ref.5d8 = import_ref PackageB//default, inst19 [no loc], unloaded // CHECK:STDOUT: %PackageB.import_ref.6c2: %HasG.assoc_type = import_ref PackageB//default, loc7_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageB.G = import_ref PackageB//default, G, unloaded -// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst18 [no loc], loaded [symbolic = constants.%Self.fcb] +// CHECK:STDOUT: %PackageB.import_ref.ef5: %HasG.type = import_ref PackageB//default, inst19 [no loc], loaded [symbolic = constants.%Self.fcb] // CHECK:STDOUT: %PackageB.import_ref.fa0 = import_ref PackageB//default, loc13_25, unloaded -// CHECK:STDOUT: %PackageB.import_ref.8db: = import_ref PackageB//default, inst47 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageB.import_ref.6a9 = import_ref PackageB//default, inst48 [indirect], unloaded +// CHECK:STDOUT: %PackageB.import_ref.8db: = import_ref PackageB//default, inst48 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %PackageB.import_ref.6a9 = import_ref PackageB//default, inst49 [indirect], unloaded // CHECK:STDOUT: %PackageB.import_ref.dfb: type = import_ref PackageB//default, loc13_14, loaded [concrete = constants.%C] // CHECK:STDOUT: %PackageB.import_ref.cee586.1: type = import_ref PackageB//default, loc13_20, loaded [concrete = constants.%HasG.type] -// CHECK:STDOUT: %PackageB.import_ref.96f = import_ref PackageB//default, inst71 [indirect], unloaded -// CHECK:STDOUT: %PackageB.import_ref.a0b = import_ref PackageB//default, inst72 [indirect], unloaded +// CHECK:STDOUT: %PackageB.import_ref.96f = import_ref PackageB//default, inst72 [indirect], unloaded +// CHECK:STDOUT: %PackageB.import_ref.a0b = import_ref PackageB//default, inst73 [indirect], unloaded // CHECK:STDOUT: %PackageB.F = import_ref PackageB//default, F, unloaded // CHECK:STDOUT: %PackageB.import_ref.7db = import_ref PackageB//default, loc18_25, unloaded // CHECK:STDOUT: %PackageB.import_ref.aa9f8a.1: type = import_ref PackageB//default, loc18_6, loaded [concrete = constants.%D] @@ -1211,10 +1211,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: import PackageAssociatedInterface//default // CHECK:STDOUT: } // CHECK:STDOUT: %PackageAssociatedInterface.Z: type = import_ref PackageAssociatedInterface//default, Z, loaded [concrete = constants.%Z.type] -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f88 = import_ref PackageAssociatedInterface//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.f88 = import_ref PackageAssociatedInterface//default, inst17 [no loc], unloaded // CHECK:STDOUT: %PackageAssociatedInterface.import_ref.609: %Z.assoc_type = import_ref PackageAssociatedInterface//default, loc5_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageAssociatedInterface.H = import_ref PackageAssociatedInterface//default, H, unloaded -// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.d26: %Z.type = import_ref PackageAssociatedInterface//default, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageAssociatedInterface.import_ref.d26: %Z.type = import_ref PackageAssociatedInterface//default, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %PackageAssociatedInterface.import_ref.998: = import_ref PackageAssociatedInterface//default, loc8_14, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %PackageAssociatedInterface.import_ref.e5c: type = import_ref PackageAssociatedInterface//default, loc8_7, loaded [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %PackageAssociatedInterface.import_ref.df1: type = import_ref PackageAssociatedInterface//default, loc8_12, loaded [concrete = constants.%Z.type] @@ -1419,12 +1419,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageHasParam.K: %K.type.311 = import_ref PackageHasParam//default, K, loaded [concrete = constants.%K.7a1] -// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self.f64] +// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self.f64] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1634,15 +1634,15 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded // CHECK:STDOUT: %PackageGenericInterface.GenericInterface: %GenericInterface.type.0da = import_ref PackageGenericInterface//default, GenericInterface, loaded [concrete = constants.%GenericInterface.generic] // CHECK:STDOUT: %PackageGenericInterface.import_ref.5ab: type = import_ref PackageGenericInterface//default, loc6_28, loaded [symbolic = @GenericInterface.%U (constants.%U)] -// CHECK:STDOUT: %PackageGenericInterface.import_ref.c3b = import_ref PackageGenericInterface//default, inst27 [no loc], unloaded +// CHECK:STDOUT: %PackageGenericInterface.import_ref.c3b = import_ref PackageGenericInterface//default, inst28 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self.f64] +// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self.f64] // CHECK:STDOUT: %PackageGenericInterface.import_ref.ca8: = import_ref PackageGenericInterface//default, loc8_70, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %PackageGenericInterface.import_ref.321: type = import_ref PackageGenericInterface//default, loc8_47, loaded [concrete = constants.%AnyParam.861] // CHECK:STDOUT: %PackageGenericInterface.import_ref.ca6: type = import_ref PackageGenericInterface//default, loc8_67, loaded [concrete = constants.%Y.type] @@ -1819,12 +1819,12 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageHasParam.K: %K.type.311 = import_ref PackageHasParam//default, K, loaded [concrete = constants.%K.7a1] -// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -2028,16 +2028,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %PackageHasParam.import_ref.5ab: type = import_ref PackageHasParam//default, loc4_16, loaded [symbolic = @AnyParam.%T (constants.%T)] // CHECK:STDOUT: %PackageHasParam.import_ref.34c: @AnyParam.%T (%T) = import_ref PackageHasParam//default, loc4_26, loaded [symbolic = @AnyParam.%X (constants.%X)] // CHECK:STDOUT: %PackageHasParam.import_ref.8f2: = import_ref PackageHasParam//default, loc4_34, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst31 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.601 = import_ref PackageHasParam//default, inst32 [no loc], unloaded // CHECK:STDOUT: %PackageGenericClass.GenericClass: %GenericClass.type = import_ref PackageGenericClass//default, GenericClass, loaded [concrete = constants.%GenericClass.generic] // CHECK:STDOUT: %PackageGenericClass.import_ref.5ab: type = import_ref PackageGenericClass//default, loc6_20, loaded [symbolic = @GenericClass.%U (constants.%U)] // CHECK:STDOUT: %PackageGenericClass.import_ref.8f2: = import_ref PackageGenericClass//default, loc6_31, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %PackageGenericClass.import_ref.065 = import_ref PackageGenericClass//default, inst26 [no loc], unloaded +// CHECK:STDOUT: %PackageGenericClass.import_ref.065 = import_ref PackageGenericClass//default, inst27 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.Y: type = import_ref PackageHasParam//default, Y, loaded [concrete = constants.%Y.type] -// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %PackageHasParam.import_ref.dc1 = import_ref PackageHasParam//default, inst38 [no loc], unloaded // CHECK:STDOUT: %PackageHasParam.import_ref.f69: %Y.assoc_type = import_ref PackageHasParam//default, loc7_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %PackageHasParam.K = import_ref PackageHasParam//default, K, unloaded -// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst37 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %PackageHasParam.import_ref.292: %Y.type = import_ref PackageHasParam//default, inst38 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %PackageGenericClass.import_ref.f23: = import_ref PackageGenericClass//default, loc8_66, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %PackageGenericClass.import_ref.a0e: type = import_ref PackageGenericClass//default, loc8_43, loaded [concrete = constants.%AnyParam.d71] // CHECK:STDOUT: %PackageGenericClass.import_ref.ca6: type = import_ref PackageGenericClass//default, loc8_63, loaded [concrete = constants.%Y.type] @@ -2439,21 +2439,21 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %HasExtraInterfaces.C: %C.type = import_ref HasExtraInterfaces//default, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %HasExtraInterfaces.import_ref.5ab: type = import_ref HasExtraInterfaces//default, loc13_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %HasExtraInterfaces.import_ref.8f2: = import_ref HasExtraInterfaces//default, loc13_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.4c0 = import_ref HasExtraInterfaces//default, inst56 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.4c0 = import_ref HasExtraInterfaces//default, inst57 [no loc], unloaded // CHECK:STDOUT: %HasExtraInterfaces.I: type = import_ref HasExtraInterfaces//default, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.e5d = import_ref HasExtraInterfaces//default, inst62 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.e5d = import_ref HasExtraInterfaces//default, inst63 [no loc], unloaded // CHECK:STDOUT: %HasExtraInterfaces.import_ref.be9: %I.assoc_type = import_ref HasExtraInterfaces//default, loc14_33, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %HasExtraInterfaces.F = import_ref HasExtraInterfaces//default, F, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.1db: %I.type = import_ref HasExtraInterfaces//default, inst62 [no loc], loaded [symbolic = constants.%Self.013] +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.1db: %I.type = import_ref HasExtraInterfaces//default, inst63 [no loc], loaded [symbolic = constants.%Self.013] // CHECK:STDOUT: %HasExtraInterfaces.import_ref.1c8 = import_ref HasExtraInterfaces//default, loc16_79, unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9c8 = import_ref HasExtraInterfaces//default, inst44 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.dfe = import_ref HasExtraInterfaces//default, inst40 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.6b6 = import_ref HasExtraInterfaces//default, inst36 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.576 = import_ref HasExtraInterfaces//default, inst32 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.0dd = import_ref HasExtraInterfaces//default, inst28 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f83 = import_ref HasExtraInterfaces//default, inst24 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.975 = import_ref HasExtraInterfaces//default, inst20 [no loc], unloaded -// CHECK:STDOUT: %HasExtraInterfaces.import_ref.a3c = import_ref HasExtraInterfaces//default, inst16 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.9c8 = import_ref HasExtraInterfaces//default, inst45 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.dfe = import_ref HasExtraInterfaces//default, inst41 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.6b6 = import_ref HasExtraInterfaces//default, inst37 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.576 = import_ref HasExtraInterfaces//default, inst33 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.0dd = import_ref HasExtraInterfaces//default, inst29 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.f83 = import_ref HasExtraInterfaces//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.975 = import_ref HasExtraInterfaces//default, inst21 [no loc], unloaded +// CHECK:STDOUT: %HasExtraInterfaces.import_ref.a3c = import_ref HasExtraInterfaces//default, inst17 [no loc], unloaded // CHECK:STDOUT: %HasExtraInterfaces.import_ref.aa8: type = import_ref HasExtraInterfaces//default, loc16_72, loaded [concrete = constants.%C.074] // CHECK:STDOUT: %HasExtraInterfaces.import_ref.301: type = import_ref HasExtraInterfaces//default, loc16_77, loaded [concrete = constants.%I.type] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon index bba1258d579a..fabfd5d599cd 100644 --- a/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/no_prelude/specific_args.carbon @@ -216,13 +216,13 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Main.C = import_ref Main//types, C, unloaded // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.2bb = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: %Main.F: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] +// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] // CHECK:STDOUT: %Main.import_ref.479 = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -385,16 +385,16 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.InInterfaceArgs: type = import_ref Main//impl_in_interface_args, InInterfaceArgs, loaded [concrete = constants.%InInterfaceArgs] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.474: @I.%I.assoc_type (%I.assoc_type.1e5) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%assoc0 (constants.%assoc0.688)] // CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] +// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] // CHECK:STDOUT: %Main.import_ref.e54: @I.%F.type (%F.type.2ae) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%F (constants.%F.bb2)] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//impl_in_interface_args, loc5_24, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.bf8 = import_ref Main//impl_in_interface_args, inst19 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.bf8 = import_ref Main//impl_in_interface_args, inst20 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f9f: = import_ref Main//impl_in_interface_args, loc7_30, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.956: type = import_ref Main//impl_in_interface_args, loc7_6, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.import_ref.e8c: type = import_ref Main//impl_in_interface_args, loc7_28, loaded [concrete = constants.%I.type.e45] @@ -551,16 +551,16 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Main.X: type = import_ref Main//types, X, loaded [concrete = constants.%X] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc5_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst60 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst61 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.2bb = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: %Main.F: @I.%F.type (%F.type.2ae) = import_ref Main//types, F, loaded [symbolic = @I.%F (constants.%F.bb2)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] +// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] // CHECK:STDOUT: %Main.import_ref.479 = import_ref Main//types, loc4_43, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -754,18 +754,18 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Main.InClassArgs: type = import_ref Main//impl_in_class_args, InClassArgs, loaded [concrete = constants.%InClassArgs] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//types, loc5_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//types, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst60 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//types, inst61 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//impl_in_class_args, loc5_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.683 = import_ref Main//impl_in_class_args, inst19 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.683 = import_ref Main//impl_in_class_args, inst20 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//types, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.474: @I.%I.assoc_type (%I.assoc_type.1e5) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%assoc0 (constants.%assoc0.688)] // CHECK:STDOUT: %Main.F = import_ref Main//types, F, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//types, loc4_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst25 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] +// CHECK:STDOUT: %Main.import_ref.38e: @I.%I.type (%I.type.325) = import_ref Main//types, inst26 [no loc], loaded [symbolic = @I.%Self (constants.%Self.209)] // CHECK:STDOUT: %Main.import_ref.e54: @I.%F.type (%F.type.2ae) = import_ref Main//types, loc4_43, loaded [symbolic = @I.%F (constants.%F.bb2)] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//types, loc7_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst65 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.acf = import_ref Main//types, inst66 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.6de: = import_ref Main//impl_in_class_args, loc7_29, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.d6e: type = import_ref Main//impl_in_class_args, loc7_19, loaded [concrete = constants.%C.23b] // CHECK:STDOUT: %Main.import_ref.208: type = import_ref Main//impl_in_class_args, loc7_27, loaded [concrete = constants.%I.type.45c] diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 4d0f04616181..7718cfc6b600 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -128,10 +128,10 @@ fn Call() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst18 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst19 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.507 = import_ref Main//i, loc4_33, unloaded // CHECK:STDOUT: %Main.F: %F.type.cf0 = import_ref Main//i, F, loaded [concrete = constants.%F.bc6] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst18 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst19 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -219,7 +219,7 @@ fn Call() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//c, loc6_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//c, inst19 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//c, inst20 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -280,12 +280,12 @@ fn Call() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//get, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//get, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst18 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8db: = import_ref Main//get, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//get, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//i, inst19 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//i, loc4_33, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//i, F, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst18 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//i, inst19 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %Main.import_ref.e53: = import_ref Main//c, loc7_13, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.29a: type = import_ref Main//c, loc7_6, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.f50: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type] diff --git a/toolchain/check/testdata/impl/min_prelude/forward_decls.carbon b/toolchain/check/testdata/impl/min_prelude/forward_decls.carbon index ab8ab1961e73..a6bdb2175d71 100644 --- a/toolchain/check/testdata/impl/min_prelude/forward_decls.carbon +++ b/toolchain/check/testdata/impl/min_prelude/forward_decls.carbon @@ -87,19 +87,19 @@ interface I { class C {} impl C as I; -// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+11]]:8: error: accessing member from impl before it has a defined value [ImplAccessMemberBeforeSet] +// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+4]]:8: error: accessing member from impl before it has a defined value [ImplAccessMemberBeforeSet] // CHECK:STDERR: let x: (C as I).T = (); // CHECK:STDERR: ^~~~~~~~~~ // CHECK:STDERR: -// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-6]]:11: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] -// CHECK:STDERR: impl C as I; -// CHECK:STDERR: ^ -// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-12]]:7: note: associated constant declared here [AssociatedConstantHere] +let x: (C as I).T = (); + +// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE+7]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] +// CHECK:STDERR: impl C as I {} +// CHECK:STDERR: ^~~~~~~~~~~~~ +// CHECK:STDERR: fail_unset_associated_const.carbon:[[@LINE-14]]:7: note: associated constant declared here [AssociatedConstantHere] // CHECK:STDERR: let T:! type; // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: -let x: (C as I).T = (); - impl C as I {} // --- fail_associated_const_before_interface_definition.carbon @@ -169,7 +169,7 @@ impl {} as I & J; interface I {} interface J {} -// --- fail_todo_never_assigned_associated_const.carbon +// --- fail_never_assigned_associated_const.carbon library "[[@TEST_NAME]]"; interface I { @@ -178,20 +178,15 @@ interface I { } class C {} -// TODO: Should accept this, once we support setting -// associated constants in the body of the impl definition. +impl C as I where .T = (); -// CHECK:STDERR: fail_todo_never_assigned_associated_const.carbon:[[@LINE+7]]:11: error: associated constant U not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] -// CHECK:STDERR: impl C as I where .T = (); -// CHECK:STDERR: ^~~~~~~~~~~~~~~ -// CHECK:STDERR: fail_todo_never_assigned_associated_const.carbon:[[@LINE-10]]:7: note: associated constant declared here [AssociatedConstantHere] +// CHECK:STDERR: fail_never_assigned_associated_const.carbon:[[@LINE+7]]:1: error: associated constant U not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] +// CHECK:STDERR: impl C as I where .T = () {} +// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +// CHECK:STDERR: fail_never_assigned_associated_const.carbon:[[@LINE-9]]:7: note: associated constant declared here [AssociatedConstantHere] // CHECK:STDERR: let U:! type; // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: -impl C as I where .T = (); - -// TODO: This should fail instead, unless there is a -// `where U = ...` declaration in the body of the impl. impl C as I where .T = () {} // --- example_from_proposal_5168.carbon @@ -435,10 +430,10 @@ interface I { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)] @@ -618,6 +613,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %.loc8_7.1: %empty_struct_type = struct_literal () // CHECK:STDOUT: %.loc8_7.2: type = converted %.loc8_7.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -717,6 +713,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: } @@ -846,6 +843,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: } @@ -961,15 +959,15 @@ interface I { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: = binding_pattern x // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc20_16.1: type = splice_block %impl.elem0 [concrete = ] { +// CHECK:STDOUT: %.loc13_16.1: type = splice_block %impl.elem0 [concrete = ] { // CHECK:STDOUT: %C.ref: type = name_ref C, %C.decl [concrete = constants.%C] // CHECK:STDOUT: %I.ref: type = name_ref I, %I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %I.facet: %I.type = facet_value constants.%C, (constants.%impl_witness) [concrete = constants.%I.facet] -// CHECK:STDOUT: %.loc20_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] +// CHECK:STDOUT: %.loc13_11: %I.type = converted %C.ref, %I.facet [concrete = constants.%I.facet] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %as_type: type = facet_access_type %.loc20_11 [concrete = constants.%C] -// CHECK:STDOUT: %.loc20_16.2: type = converted %.loc20_11, %as_type [concrete = constants.%C] -// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc20_11, element0 [concrete = constants.%impl_witness] +// CHECK:STDOUT: %as_type: type = facet_access_type %.loc13_11 [concrete = constants.%C] +// CHECK:STDOUT: %.loc13_16.2: type = converted %.loc13_11, %as_type [concrete = constants.%C] +// CHECK:STDOUT: %as_wit.iface0: = facet_access_witness %.loc13_11, element0 [concrete = constants.%impl_witness] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %as_wit.iface0, element0 [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %x: = bind_name x, @@ -1010,7 +1008,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc20: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc13: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1170,6 +1168,7 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C [concrete = constants.%C] // CHECK:STDOUT: %C.decl.loc10: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %D.ref.loc11: type = name_ref D, file.%D.decl [concrete = constants.%D] @@ -1441,10 +1440,10 @@ interface I { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)] @@ -1569,7 +1568,7 @@ interface I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: --- fail_todo_never_assigned_associated_const.carbon +// CHECK:STDOUT: --- fail_never_assigned_associated_const.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] @@ -1606,36 +1605,37 @@ interface I { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @impl [concrete] {} { -// CHECK:STDOUT: %C.ref.loc19: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref.loc19: type = name_ref I, file.%I.decl [concrete = constants.%I.type] +// CHECK:STDOUT: %C.ref.loc9: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %I.ref.loc9: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.ref.loc19: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %T.ref.loc19: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc19: type = facet_access_type %.Self.ref.loc19 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc19_19: type = converted %.Self.ref.loc19, %.Self.as_type.loc19 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.iface0.loc19: = facet_access_witness %.Self.ref.loc19, element0 [symbolic_self = constants.%.Self.as_wit.iface0] -// CHECK:STDOUT: %impl.elem0.loc19: type = impl_witness_access %.Self.as_wit.iface0.loc19, element0 [symbolic_self = constants.%impl.elem0] -// CHECK:STDOUT: %.loc19_25.1: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc19_25.2: type = converted %.loc19_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc19_13: type = where_expr %.Self.1 [concrete = constants.%I_where.type] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc19, %.loc19_25.2 +// CHECK:STDOUT: %.Self.ref.loc9: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %T.ref.loc9: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] +// CHECK:STDOUT: %.Self.as_type.loc9: type = facet_access_type %.Self.ref.loc9 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_19: type = converted %.Self.ref.loc9, %.Self.as_type.loc9 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc9: = facet_access_witness %.Self.ref.loc9, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access %.Self.as_wit.iface0.loc9, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.loc9_25.1: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc9_25.2: type = converted %.loc9_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc9_13: type = where_expr %.Self.1 [concrete = constants.%I_where.type] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9, %.loc9_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type, ) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: impl_decl @impl [concrete] {} { -// CHECK:STDOUT: %C.ref.loc23: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %I.ref.loc23: type = name_ref I, file.%I.decl [concrete = constants.%I.type] +// CHECK:STDOUT: %C.ref.loc18: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = bind_symbolic_name .Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.ref.loc23: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %T.ref.loc23: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %.Self.as_type.loc23: type = facet_access_type %.Self.ref.loc23 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.loc23_19: type = converted %.Self.ref.loc23, %.Self.as_type.loc23 [symbolic_self = constants.%.Self.as_type] -// CHECK:STDOUT: %.Self.as_wit.iface0.loc23: = facet_access_witness %.Self.ref.loc23, element0 [symbolic_self = constants.%.Self.as_wit.iface0] -// CHECK:STDOUT: %impl.elem0.loc23: type = impl_witness_access %.Self.as_wit.iface0.loc23, element0 [symbolic_self = constants.%impl.elem0] -// CHECK:STDOUT: %.loc23_25.1: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc23_25.2: type = converted %.loc23_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %.loc23_13: type = where_expr %.Self.2 [concrete = constants.%I_where.type] { -// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc23, %.loc23_25.2 +// CHECK:STDOUT: %.Self.ref.loc18: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] +// CHECK:STDOUT: %T.ref.loc18: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] +// CHECK:STDOUT: %.Self.as_type.loc18: type = facet_access_type %.Self.ref.loc18 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref.loc18, %.Self.as_type.loc18 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.Self.as_wit.iface0.loc18: = facet_access_witness %.Self.ref.loc18, element0 [symbolic_self = constants.%.Self.as_wit.iface0] +// CHECK:STDOUT: %impl.elem0.loc18: type = impl_witness_access %.Self.as_wit.iface0.loc18, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc18_25.2: type = converted %.loc18_25.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc18_13: type = where_expr %.Self.2 [concrete = constants.%I_where.type] { +// CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18, %.loc18_25.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1664,7 +1664,7 @@ interface I { // CHECK:STDOUT: assoc_const U:! type; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @impl: %C.ref.loc19 as %.loc19_13 { +// CHECK:STDOUT: impl @impl: %C.ref.loc9 as %.loc9_13 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = file.%impl_witness // CHECK:STDOUT: } @@ -2018,7 +2018,7 @@ interface I { // CHECK:STDOUT: %I.facet: %I.type = facet_value %.Self.as_type, (%.Self.as_wit.iface0) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %.Self.as_wit.iface0, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %C.a2d> [concrete] -// CHECK:STDOUT: %impl_witness: = impl_witness (%C.a2d, invalid), @impl(%Self) [symbolic] +// CHECK:STDOUT: %impl_witness: = impl_witness (%C.a2d, ), @impl(%Self) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2058,7 +2058,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @impl(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = bind_symbolic_name Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C.a2d, invalid), @impl(%Self) [symbolic = %impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C.a2d, ), @impl(%Self) [symbolic = %impl_witness (constants.%impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -2101,7 +2101,8 @@ interface I { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc16, %C.ref.loc16_28 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C.a2d, invalid), @impl(constants.%Self) [symbolic = @impl.%impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C.a2d, ), @impl(constants.%Self) [symbolic = @impl.%impl_witness (constants.%impl_witness)] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C.a2d [concrete = constants.%C.a2d] // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc18_10: type = name_ref C, @F.%C.decl [concrete = constants.%C.a2d] // CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [concrete = constants.%I.type] diff --git a/toolchain/check/testdata/impl/no_prelude/compound.carbon b/toolchain/check/testdata/impl/no_prelude/compound.carbon index 705c8b044364..73bb94eb9cc9 100644 --- a/toolchain/check/testdata/impl/no_prelude/compound.carbon +++ b/toolchain/check/testdata/impl/no_prelude/compound.carbon @@ -334,11 +334,11 @@ fn InstanceCallFail() { // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -512,11 +512,11 @@ fn InstanceCallFail() { // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/fail_impl_bad_assoc_const.carbon b/toolchain/check/testdata/impl/no_prelude/fail_impl_bad_assoc_const.carbon index cf7276d3ad4a..a9ebf9b351a4 100644 --- a/toolchain/check/testdata/impl/no_prelude/fail_impl_bad_assoc_const.carbon +++ b/toolchain/check/testdata/impl/no_prelude/fail_impl_bad_assoc_const.carbon @@ -10,9 +10,9 @@ interface I { let T:! type; } -// CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE+7]]:12: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] +// CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE+7]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] // CHECK:STDERR: impl () as I {} -// CHECK:STDERR: ^ +// CHECK:STDERR: ^~~~~~~~~~~~~~ // CHECK:STDERR: fail_impl_bad_assoc_const.carbon:[[@LINE-5]]:19: note: associated constant declared here [AssociatedConstantHere] // CHECK:STDERR: interface I { let T:! type; } // CHECK:STDERR: ^~~~~~~~ diff --git a/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon b/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon index cc32af71ba45..7f4b198b608d 100644 --- a/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon +++ b/toolchain/check/testdata/impl/no_prelude/impl_assoc_const.carbon @@ -82,9 +82,9 @@ library "[[@TEST_NAME]]"; interface K { let V:! type; } impl () as K where .V = {}; -// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+11]]:12: error: associated constant V not given a value in impl of interface K [ImplAssociatedConstantNeedsValue] +// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+11]]:1: error: associated constant V not given a value in impl of interface K [ImplAssociatedConstantNeedsValue] // CHECK:STDERR: impl () as K {} -// CHECK:STDERR: ^ +// CHECK:STDERR: ^~~~~~~~~~~~~~ // CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE-6]]:19: note: associated constant declared here [AssociatedConstantHere] // CHECK:STDERR: interface K { let V:! type; } // CHECK:STDERR: ^~~~~~~~ @@ -215,6 +215,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { @@ -283,6 +284,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %.loc6_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc6_7.2: type = converted %.loc6_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -375,6 +377,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I3 { @@ -447,6 +450,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc9: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl.6a8 [concrete] {} { // CHECK:STDOUT: %.loc10_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc10_7.2: type = converted %.loc10_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -465,6 +469,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness.2a6] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { @@ -688,6 +693,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc5: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl.4b0 [concrete] {} { // CHECK:STDOUT: %.loc17_7.1: %empty_tuple.type = tuple_literal () // CHECK:STDOUT: %.loc17_7.2: type = converted %.loc17_7.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -773,6 +779,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @L { @@ -1070,6 +1077,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @M { @@ -1145,6 +1153,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%struct) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.225 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @N { diff --git a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon index 7e38f95d331e..70d0581109ff 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_builtin_call.carbon @@ -468,11 +468,11 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.Double: %Double.type = import_ref Main//generic_impl, Double, loaded [concrete = constants.%Double] // CHECK:STDOUT: %Main.import_ref.f1e294.1: Core.IntLiteral = import_ref Main//generic_impl, loc11_13, loaded [symbolic = @MyInt.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.9e9: = import_ref Main//generic_impl, loc13_1, loaded [symbolic = @MyInt.%complete_type (constants.%complete_type.a87)] -// CHECK:STDOUT: %Main.import_ref.697 = import_ref Main//generic_impl, inst88 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//generic_impl, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.697 = import_ref Main//generic_impl, inst89 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//generic_impl, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f99: %Add.assoc_type = import_ref Main//generic_impl, loc5_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.Op = import_ref Main//generic_impl, Op, unloaded -// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//generic_impl, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//generic_impl, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %Main.import_ref.33b: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.7e5)] // CHECK:STDOUT: %Main.import_ref.f1e294.2: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @impl.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.719: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @impl.%MyInt (constants.%MyInt.09f)] @@ -1079,7 +1079,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.MakeFromClass: %MakeFromClass.type = import_ref Main//convert_symbolic, MakeFromClass, loaded [concrete = constants.%MakeFromClass] // CHECK:STDOUT: %Main.import_ref.85e: %i32.builtin = import_ref Main//convert_symbolic, loc9_9, loaded [symbolic = @Make.%N (constants.%N.987)] // CHECK:STDOUT: %Main.import_ref.b03: = import_ref Main//convert_symbolic, loc14_1, loaded [concrete = constants.%complete_type.f8a] -// CHECK:STDOUT: %Main.import_ref.d11 = import_ref Main//convert_symbolic, inst128 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.d11 = import_ref Main//convert_symbolic, inst129 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8f7 = import_ref Main//convert_symbolic, loc13_45, unloaded // CHECK:STDOUT: %Main.import_ref.77d: %OtherInt = import_ref Main//convert_symbolic, loc18_18, loaded [symbolic = @MakeFromClass.%N (constants.%N.335)] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/no_prelude/import_compound.carbon b/toolchain/check/testdata/impl/no_prelude/import_compound.carbon index c2f3d827a86c..10e2401a7c92 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_compound.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_compound.carbon @@ -363,14 +363,14 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.NonInstance: type = import_ref Main//lib, NonInstance, loaded [concrete = constants.%NonInstance.type] // CHECK:STDOUT: %Main.Instance = import_ref Main//lib, Instance, unloaded -// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c] +// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c] // CHECK:STDOUT: %Main.import_ref.826: = import_ref Main//lib, loc7_30, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i] // CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded // CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded @@ -472,21 +472,21 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8ce] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c] +// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded // CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i] // CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded // CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded @@ -652,21 +652,21 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e3c: %NonInstance.assoc_type = import_ref Main//lib, loc4_9, loaded [concrete = constants.%assoc0.8ce] // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded -// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst16 [no loc], loaded [symbolic = constants.%Self.73c] +// CHECK:STDOUT: %Main.import_ref.f85: %NonInstance.type = import_ref Main//lib, inst17 [no loc], loaded [symbolic = constants.%Self.73c] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded // CHECK:STDOUT: %Main.import_ref.ded207.1: type = import_ref Main//lib, loc7_13, loaded [concrete = constants.%struct_type.i] // CHECK:STDOUT: %Main.import_ref.ef5: type = import_ref Main//lib, loc7_18, loaded [concrete = constants.%NonInstance.type] -// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f09 = import_ref Main//lib, loc12_21, unloaded // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded // CHECK:STDOUT: %Main.import_ref.ab2 = import_ref Main//lib, loc15_27, unloaded @@ -825,11 +825,11 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.NonInstance = import_ref Main//lib, NonInstance, unloaded // CHECK:STDOUT: %Main.Instance: type = import_ref Main//lib, Instance, loaded [concrete = constants.%Instance.type] -// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.124: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded -// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst40 [no loc], loaded [symbolic = constants.%Self.cf8] -// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst41 [no loc], loaded [symbolic = constants.%Self.cf8] +// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.49c = import_ref Main//lib, loc4_9, unloaded // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded // CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded @@ -962,11 +962,11 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst40 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.dcd = import_ref Main//lib, inst41 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.124: %Instance.assoc_type = import_ref Main//lib, loc12_21, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.G = import_ref Main//lib, G, unloaded -// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst40 [no loc], loaded [symbolic = constants.%Self.cf8] -// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.0d8: %Instance.type = import_ref Main//lib, inst41 [no loc], loaded [symbolic = constants.%Self.cf8] +// CHECK:STDOUT: %Main.import_ref.c55 = import_ref Main//lib, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.49c = import_ref Main//lib, loc4_9, unloaded // CHECK:STDOUT: %Main.F = import_ref Main//lib, F, unloaded // CHECK:STDOUT: %Main.import_ref.112 = import_ref Main//lib, loc7_30, unloaded diff --git a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon index ae44a5d7336e..0a9ff049c666 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_extend_impl.carbon @@ -132,15 +132,15 @@ fn G(c: C) { // CHECK:STDOUT: %Main.I = import_ref Main//extend_impl_library, I, unloaded // CHECK:STDOUT: %Main.C: type = import_ref Main//extend_impl_library, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//extend_impl_library, loc12_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//extend_impl_library, inst26 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//extend_impl_library, inst27 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.3019d1.1: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//extend_impl_library, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//extend_impl_library, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//extend_impl_library, loc5_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//extend_impl_library, F, unloaded // CHECK:STDOUT: %Main.import_ref.b86: = import_ref Main//extend_impl_library, loc9_20, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.0ed: type = import_ref Main//extend_impl_library, loc9_15, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.3019d1.2: type = import_ref Main//extend_impl_library, loc9_18, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//extend_impl_library, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//extend_impl_library, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon index 63a95879c2fb..973f353b0a4b 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_generic.carbon @@ -290,10 +290,10 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %Main.C: type = import_ref Main//import_generic, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.I: %I.type.dac = import_ref Main//import_generic, I, loaded [concrete = constants.%I.generic] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic, loc5_13, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//import_generic, inst30 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.884 = import_ref Main//import_generic, inst31 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.003 = import_ref Main//import_generic, loc8_33, unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//import_generic, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//import_generic, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic, loc8_14, loaded [symbolic = @impl.08450a.1.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.29aca8.1: type = import_ref Main//import_generic, loc8_24, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.4be: type = import_ref Main//import_generic, loc8_32, loaded [symbolic = @impl.08450a.1.%I.type (constants.%I.type.325)] @@ -709,9 +709,9 @@ impl forall [T:! type] D as J(T*) {} // CHECK:STDOUT: %Main.D: type = import_ref Main//import_generic_decl, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.J: %J.type.2b8 = import_ref Main//import_generic_decl, J, loaded [concrete = constants.%J.generic] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic_decl, loc5_13, loaded [symbolic = @J.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.ff5 = import_ref Main//import_generic_decl, inst30 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ff5 = import_ref Main//import_generic_decl, inst31 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic_decl, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//import_generic_decl, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//import_generic_decl, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic_decl, loc11_14, loaded [symbolic = @impl.199bba.1.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.aa9f8a.1: type = import_ref Main//import_generic_decl, loc11_24, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.ded: type = import_ref Main//import_generic_decl, loc11_32, loaded [symbolic = @impl.199bba.1.%J.type (constants.%J.type.b72)] diff --git a/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon b/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon index cff3ec0a3a6b..8f81658e11b1 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_interface_assoc_const.carbon @@ -97,9 +97,9 @@ import library "interface"; class C6 { } impl C6 as I where .T = {}; -// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+12]]:12: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] +// CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE+12]]:1: error: associated constant T not given a value in impl of interface I [ImplAssociatedConstantNeedsValue] // CHECK:STDERR: impl C6 as I { } -// CHECK:STDERR: ^ +// CHECK:STDERR: ^~~~~~~~~~~~~~ // CHECK:STDERR: fail_missing_on_definition.carbon:[[@LINE-7]]:1: in import [InImport] // CHECK:STDERR: interface.carbon:3:19: note: associated constant declared here [AssociatedConstantHere] // CHECK:STDERR: interface I { let T:! type; } @@ -327,10 +327,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -359,6 +359,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { @@ -412,10 +413,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -444,6 +445,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl [concrete] {} { // CHECK:STDOUT: %C2.ref.loc6: type = name_ref C2, file.%C2.decl [concrete = constants.%C2] // CHECK:STDOUT: %I.ref.loc6: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -514,10 +516,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -551,6 +553,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { @@ -609,10 +612,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -641,6 +644,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc9: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc9: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl.2de [concrete] {} { // CHECK:STDOUT: %C4.ref: type = name_ref C4, file.%C4.decl [concrete = constants.%C4] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -658,6 +662,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%empty_tuple.type) [concrete = constants.%impl_witness.2a6] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { @@ -717,16 +722,16 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded // CHECK:STDOUT: %Main.I3: type = import_ref Main//interface, I3, loaded [concrete = constants.%I3.type] // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.148 = import_ref Main//interface, inst24 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.148 = import_ref Main//interface, inst25 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f5f: %I3.assoc_type = import_ref Main//interface, loc6_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.import_ref.680: %I3.assoc_type = import_ref Main//interface, loc7_9, loaded [concrete = constants.%assoc1] // CHECK:STDOUT: %Main.import_ref.181: %I3.assoc_type = import_ref Main//interface, loc8_9, loaded [concrete = constants.%assoc2] // CHECK:STDOUT: %Main.T1 = import_ref Main//interface, T1, unloaded // CHECK:STDOUT: %Main.T2 = import_ref Main//interface, T2, unloaded // CHECK:STDOUT: %Main.T3 = import_ref Main//interface, T3, unloaded -// CHECK:STDOUT: %Main.import_ref.8a8474.1: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.8a8474.2: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self] -// CHECK:STDOUT: %Main.import_ref.8a8474.3: %I3.type = import_ref Main//interface, inst24 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.8a8474.1: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.8a8474.2: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.8a8474.3: %I3.type = import_ref Main//interface, inst25 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -882,10 +887,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -914,6 +919,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc5: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness.6de] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: impl_decl @impl.482 [concrete] {} { // CHECK:STDOUT: %C6.ref: type = name_ref C6, file.%C6.decl [concrete = constants.%C6] // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] @@ -975,10 +981,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1016,6 +1022,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness () [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { @@ -1068,10 +1075,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1159,10 +1166,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1250,10 +1257,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T = import_ref Main//interface, T, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1343,10 +1350,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I: type = import_ref Main//interface, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType = import_ref Main//interface, NonType, unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//interface, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.4fb: %I.assoc_type = import_ref Main//interface, loc3_20, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.T: type = import_ref Main//interface, T, loaded [concrete = %T] -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//interface, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1384,6 +1391,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_struct_type) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I [from "interface.carbon"] { @@ -1440,10 +1448,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Main.I = import_ref Main//interface, I, unloaded // CHECK:STDOUT: %Main.I3 = import_ref Main//interface, I3, unloaded // CHECK:STDOUT: %Main.NonType: type = import_ref Main//interface, NonType, loaded [concrete = constants.%NonType.type] -// CHECK:STDOUT: %Main.import_ref.8b7 = import_ref Main//interface, inst38 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8b7 = import_ref Main//interface, inst39 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.9fa: %NonType.assoc_type = import_ref Main//interface, loc12_8, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.Y: %struct_type.a.225 = import_ref Main//interface, Y, loaded [concrete = %Y] -// CHECK:STDOUT: %Main.import_ref.86c: %NonType.type = import_ref Main//interface, inst38 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.86c: %NonType.type = import_ref Main//interface, inst39 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1476,6 +1484,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%struct) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.a.225 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @NonType [from "interface.carbon"] { @@ -1569,10 +1578,10 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.IF: type = import_ref Main//interface_with_function, IF, loaded [concrete = constants.%IF.type] -// CHECK:STDOUT: %Main.import_ref.a2a = import_ref Main//interface_with_function, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.a2a = import_ref Main//interface_with_function, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f22: %IF.assoc_type = import_ref Main//interface_with_function, loc3_22, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F: %F.type.496 = import_ref Main//interface_with_function, F, loaded [concrete = constants.%F.1de] -// CHECK:STDOUT: %Main.import_ref.f57: %IF.type = import_ref Main//interface_with_function, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.f57: %IF.type = import_ref Main//interface_with_function, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/no_prelude/import_self.carbon b/toolchain/check/testdata/impl/no_prelude/import_self.carbon index 7e8a3ff16d9b..88f01925149f 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_self.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_self.carbon @@ -122,10 +122,10 @@ fn F(x: (), y: ()) -> () { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Add: type = import_ref Main//a, Add, loaded [concrete = constants.%Add.type] -// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//a, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.07c = import_ref Main//a, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f99: %Add.assoc_type = import_ref Main//a, loc5_41, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.Op: %Op.type.31b = import_ref Main//a, Op, loaded [concrete = constants.%Op.d59] -// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//a, inst16 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.e5e: %Add.type = import_ref Main//a, inst17 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon index 34402d2dc588..516dfccef6e8 100644 --- a/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/no_prelude/import_use_generic.carbon @@ -217,11 +217,11 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %Main.I: type = import_ref Main//import_generic, I, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//import_generic, loc4_9, loaded [symbolic = @C.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//import_generic, loc4_20, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//import_generic, inst24 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//import_generic, inst30 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.4c0 = import_ref Main//import_generic, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//import_generic, inst31 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c44: %I.assoc_type = import_ref Main//import_generic, loc7_9, loaded [concrete = constants.%assoc0] // CHECK:STDOUT: %Main.F = import_ref Main//import_generic, F, unloaded -// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//import_generic, inst30 [no loc], loaded [symbolic = constants.%Self] +// CHECK:STDOUT: %Main.import_ref.5dd: %I.type = import_ref Main//import_generic, inst31 [no loc], loaded [symbolic = constants.%Self] // CHECK:STDOUT: %Main.import_ref.d91: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @impl.%impl_witness (constants.%impl_witness.bbe)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//import_generic, loc10_14, loaded [symbolic = @impl.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.499: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @impl.%C (constants.%C.f2e)] diff --git a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon index bc0dc8916750..0c9a2f64f4e4 100644 --- a/toolchain/check/testdata/impl/no_prelude/interface_args.carbon +++ b/toolchain/check/testdata/impl/no_prelude/interface_args.carbon @@ -446,19 +446,19 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.C = import_ref Main//action, C, unloaded // CHECK:STDOUT: %Main.F = import_ref Main//action, F, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst59 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst60 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c55: @Action.%Action.assoc_type (%Action.assoc_type.32e) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.f18741.2)] // CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded // CHECK:STDOUT: %Main.import_ref.71c: = import_ref Main//action, loc12_21, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst54 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst55 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.cb0] // CHECK:STDOUT: %Main.import_ref.7b5 = import_ref Main//action, loc13_23, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst25 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)] +// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst26 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)] // CHECK:STDOUT: %Main.import_ref.0e3753.1 = import_ref Main//action, loc5_22, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -620,22 +620,22 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.C: type = import_ref Main//action, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.F = import_ref Main//action, F, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//action, loc9_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst59 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//action, inst60 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.ddc = import_ref Main//action, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c55: @Action.%Action.assoc_type (%Action.assoc_type.32e) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%assoc0 (constants.%assoc0.f18)] // CHECK:STDOUT: %Main.Op = import_ref Main//action, Op, unloaded // CHECK:STDOUT: %Main.import_ref.7a1 = import_ref Main//action, loc12_21, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//action, loc8_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst54 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//action, inst55 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//action, loc12_6, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.import_ref.bb2: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.cb0] // CHECK:STDOUT: %Main.import_ref.7b5 = import_ref Main//action, loc13_23, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst25 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)] +// CHECK:STDOUT: %Main.import_ref.835: @Action.%Action.type (%Action.type.cca) = import_ref Main//action, inst26 [no loc], loaded [symbolic = @Action.%Self (constants.%Self.e98)] // CHECK:STDOUT: %Main.import_ref.1f6: @Action.%Op.type (%Op.type.036) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%Op (constants.%Op.6ed)] // CHECK:STDOUT: %Main.import_ref.8f24d3.3: = import_ref Main//action, loc10_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//action, inst62 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//action, inst63 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1046,25 +1046,25 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.A: type = import_ref Main//factory, A, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.B: type = import_ref Main//factory, B, loaded [concrete = constants.%B] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst78 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst79 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.46c: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.46d25f.2)] // CHECK:STDOUT: %Main.import_ref.2e4: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%assoc1 (constants.%assoc1.16541d.2)] // CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded // CHECK:STDOUT: %Main.import_ref.f8d: = import_ref Main//factory, loc14_22, loaded [concrete = constants.%impl_witness] // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst73 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst74 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.import_ref.bd2: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.a5d] // CHECK:STDOUT: %Main.import_ref.a27 = import_ref Main//factory, loc15_17, unloaded // CHECK:STDOUT: %Main.import_ref.163 = import_ref Main//factory, loc16_31, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] +// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] // CHECK:STDOUT: %Main.import_ref.21018a.1 = import_ref Main//factory, loc6_17, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] +// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] // CHECK:STDOUT: %Main.import_ref.46fc3c.1 = import_ref Main//factory, loc8_31, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1289,25 +1289,25 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//factory, loc12_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst78 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.54a = import_ref Main//factory, inst79 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.fbb = import_ref Main//factory, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.46c: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%assoc0 (constants.%assoc0.46d)] // CHECK:STDOUT: %Main.import_ref.2e4: @Factory.%Factory.assoc_type (%Factory.assoc_type.207) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%assoc1 (constants.%assoc1.165)] // CHECK:STDOUT: %Main.Make = import_ref Main//factory, Make, unloaded // CHECK:STDOUT: %Main.Method = import_ref Main//factory, Method, unloaded // CHECK:STDOUT: %Main.import_ref.e41 = import_ref Main//factory, loc14_22, unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//factory, loc11_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst73 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.da3 = import_ref Main//factory, inst74 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.984: type = import_ref Main//factory, loc14_6, loaded [concrete = constants.%A] // CHECK:STDOUT: %Main.import_ref.bd2: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.a5d] // CHECK:STDOUT: %Main.import_ref.a27 = import_ref Main//factory, loc15_17, unloaded // CHECK:STDOUT: %Main.import_ref.163 = import_ref Main//factory, loc16_31, unloaded // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] +// CHECK:STDOUT: %Main.import_ref.91b53a.1: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] // CHECK:STDOUT: %Main.import_ref.1aa: @Factory.%Make.type (%Make.type.598) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%Make (constants.%Make.737)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst25 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] +// CHECK:STDOUT: %Main.import_ref.91b53a.2: @Factory.%Factory.type (%Factory.type.c96) = import_ref Main//factory, inst26 [no loc], loaded [symbolic = @Factory.%Self (constants.%Self.9ba)] // CHECK:STDOUT: %Main.import_ref.5be: @Factory.%Method.type (%Method.type.7ee) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%Method (constants.%Method.a71)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon b/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon index 225ca52f1316..5eabffb9e5d8 100644 --- a/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon +++ b/toolchain/check/testdata/impl/no_prelude/no_definition_in_impl_file.carbon @@ -143,7 +143,7 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.A: type = import_ref Main//decl_in_api_definition_in_impl, A, loaded [concrete = constants.%A.type] -// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//decl_in_api_definition_in_impl, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//decl_in_api_definition_in_impl, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_definition_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Main.import_ref.831: type = import_ref Main//decl_in_api_definition_in_impl, loc10_12, loaded [concrete = constants.%A.type] // CHECK:STDOUT: } @@ -244,7 +244,7 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.B = import_ref Main//decl_only_in_api, B, unloaded -// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//decl_only_in_api, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//decl_only_in_api, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_only_in_api, loc10_7, loaded [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//decl_only_in_api, loc10_12, loaded [concrete = constants.%B.type] // CHECK:STDOUT: } @@ -307,7 +307,7 @@ impl () as D; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//decl_in_api_decl_in_impl, C, loaded [concrete = constants.%C.type] -// CHECK:STDOUT: %Main.import_ref.721 = import_ref Main//decl_in_api_decl_in_impl, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.721 = import_ref Main//decl_in_api_decl_in_impl, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//decl_in_api_decl_in_impl, loc10_7, loaded [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Main.import_ref.653: type = import_ref Main//decl_in_api_decl_in_impl, loc10_12, loaded [concrete = constants.%C.type] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/use_assoc_const.carbon b/toolchain/check/testdata/impl/use_assoc_const.carbon index fb5339a28e6a..52ecbb968e43 100644 --- a/toolchain/check/testdata/impl/use_assoc_const.carbon +++ b/toolchain/check/testdata/impl/use_assoc_const.carbon @@ -394,6 +394,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc8: = impl_witness (constants.%i32, @impl.05c.%F.decl) [concrete = constants.%impl_witness.bcc] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc8: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %CallMethod.decl: %CallMethod.type = fn_decl @CallMethod [concrete = constants.%CallMethod] { // CHECK:STDOUT: %x.patt: %empty_tuple.type = binding_pattern x // CHECK:STDOUT: %x.param_patt: %empty_tuple.type = value_param_pattern %x.patt, call_param0 @@ -428,6 +429,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc21: = impl_witness (constants.%C, @impl.f57.%F.decl) [concrete = constants.%impl_witness.192] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc21: type = impl_witness_assoc_constant constants.%C [concrete = constants.%C] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J { @@ -723,6 +725,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%i32, @impl.847.%F.decl) [concrete = constants.%impl_witness.56c] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %CallFunction.decl: %CallFunction.type = fn_decl @CallFunction [concrete = constants.%CallFunction] { // CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern // CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, call_param0 @@ -1194,6 +1197,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%i32, @impl.2dd.%F.decl, @impl.2dd.%G.decl) [concrete = constants.%impl_witness.71e] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -2291,6 +2295,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%i32, ) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete = constants.%complete_type.357] // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: @@ -2400,6 +2405,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc22: = impl_witness (constants.%empty_struct_type, ) [concrete = constants.%impl_witness.f71] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc22: type = impl_witness_assoc_constant constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %C2.decl: type = class_decl @C2 [concrete = constants.%C2] {} {} // CHECK:STDOUT: impl_decl @impl.3df [concrete] {} { // CHECK:STDOUT: %C2.ref.loc31_6: type = name_ref C2, file.%C2.decl [concrete = constants.%C2] @@ -2417,6 +2423,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc31: = impl_witness (constants.%C2, ) [concrete = constants.%impl_witness.d84] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc31: type = impl_witness_assoc_constant constants.%C2 [concrete = constants.%C2] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @J2 { @@ -2625,6 +2632,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%struct_type.a, ) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%struct_type.a [concrete = constants.%struct_type.a] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @K { @@ -2802,6 +2810,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%struct, @impl.%G.decl) [concrete = constants.%impl_witness] +// CHECK:STDOUT: %impl_witness_assoc_constant: %struct_type.b.347 = impl_witness_assoc_constant constants.%struct [concrete = constants.%struct] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @M { @@ -2962,6 +2971,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc10: = impl_witness (constants.%struct.0f3, @impl.9c5.%G.decl) [concrete = constants.%impl_witness.ae0] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc10: %struct_type.b.86f = impl_witness_assoc_constant constants.%struct.0f3 [concrete = constants.%struct.0f3] // CHECK:STDOUT: impl_decl @impl.f46 [concrete] {} { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.loc16_9: %empty_tuple.type = tuple_literal () @@ -2985,6 +2995,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness.loc16: = impl_witness (constants.%struct.c94, @impl.f46.%G.decl) [concrete = constants.%impl_witness.6b9] +// CHECK:STDOUT: %impl_witness_assoc_constant.loc16: %struct_type.b.86f = impl_witness_assoc_constant constants.%struct.c94 [concrete = constants.%struct.c94] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @M { @@ -3225,6 +3236,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%int_2.ef8, @impl.dd2.%F.decl) [concrete = constants.%impl_witness.d8a] +// CHECK:STDOUT: %impl_witness_assoc_constant: %i32 = impl_witness_assoc_constant constants.%int_2.ef8 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: interface @I { @@ -3434,6 +3446,7 @@ fn F() { // CHECK:STDOUT: %T.loc9_14.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc9_14.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%C.f2e), @impl(constants.%T) [symbolic = @impl.%impl_witness (constants.%impl_witness.00e)] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%C.f2e [symbolic = @impl.%C.loc9_45.2 (constants.%C.f2e)] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/min_prelude/compound_member_access.carbon b/toolchain/check/testdata/interface/min_prelude/compound_member_access.carbon index 4faf5bee6c64..790b7e55d2ab 100644 --- a/toolchain/check/testdata/interface/min_prelude/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/min_prelude/compound_member_access.carbon @@ -546,13 +546,13 @@ fn Works() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//prelude, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.02e = import_ref Core//prelude, loc18_41, unloaded // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded // CHECK:STDOUT: %Core.import_ref.f80 = import_ref Core//prelude, loc21_36, unloaded @@ -1373,10 +1373,10 @@ fn Works() { // CHECK:STDOUT: .ImplicitAs = %Core.ImplicitAs // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)] @@ -1384,11 +1384,11 @@ fn Works() { // CHECK:STDOUT: %Core.import_ref.1e6: @impl.f92.%Op.type (%Op.type.f99) = import_ref Core//prelude, loc22_42, loaded [symbolic = @impl.f92.%Op (constants.%Op.05a)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.3: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst66 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//prelude, inst67 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//prelude, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.4: type = import_ref Core//prelude, loc13_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst66 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//prelude, inst67 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//prelude, loc14_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1701,10 +1701,10 @@ fn Works() { // CHECK:STDOUT: .BitAnd = %Core.BitAnd // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst101 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ad0 = import_ref Core//prelude, inst102 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.a46: %BitAnd.assoc_type = import_ref Core//prelude, loc18_41, loaded [concrete = constants.%assoc0.d45] // CHECK:STDOUT: %Core.Op = import_ref Core//prelude, Op, unloaded -// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst101 [no loc], loaded [symbolic = constants.%Self.25f] +// CHECK:STDOUT: %Core.import_ref.040: %BitAnd.type = import_ref Core//prelude, inst102 [no loc], loaded [symbolic = constants.%Self.25f] // CHECK:STDOUT: %Core.import_ref.51c: = import_ref Core//prelude, loc21_36, loaded [symbolic = @impl.f92.%impl_witness (constants.%impl_witness.b81)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//prelude, loc21_14, loaded [symbolic = @impl.f92.%T (constants.%T)] // CHECK:STDOUT: %Core.import_ref.583: type = import_ref Core//prelude, loc21_24, loaded [symbolic = @impl.f92.%T (constants.%T)] diff --git a/toolchain/check/testdata/interface/no_prelude/export_name.carbon b/toolchain/check/testdata/interface/no_prelude/export_name.carbon index a41f2d5872ae..539a21f596d5 100644 --- a/toolchain/check/testdata/interface/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/interface/no_prelude/export_name.carbon @@ -68,7 +68,7 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//base, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref = import_ref Main//base, inst17 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -95,7 +95,7 @@ fn UseEmpty(i: I) {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I: type = import_ref Main//export, I, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref = import_ref Main//export, inst19 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref = import_ref Main//export, inst20 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_alias.carbon index 703c1d71a141..312ac738c5b0 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_alias.carbon @@ -324,6 +324,7 @@ interface C { // CHECK:STDOUT: %V.loc11_14.1: %J2.type = bind_symbolic_name V, 0 [symbolic = %V.loc11_14.2 (constants.%V)] // CHECK:STDOUT: } // CHECK:STDOUT: %impl_witness: = impl_witness (constants.%empty_tuple.type), @impl(constants.%V) [symbolic = @impl.%impl_witness (constants.%impl_witness.ec95d0.1)] +// CHECK:STDOUT: %impl_witness_assoc_constant: type = impl_witness_assoc_constant constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %J2.decl.loc13: type = interface_decl @J2 [concrete = constants.%J2.type] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_not_binding.carbon b/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_not_binding.carbon index 0eefbdb82361..f06d4d2f2088 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_not_binding.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_assoc_const_not_binding.carbon @@ -127,7 +127,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = .inst16 +// CHECK:STDOUT: .Self = .inst17 // CHECK:STDOUT: witness = invalid // CHECK:STDOUT: } // CHECK:STDOUT: @@ -140,7 +140,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: interface @I { // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = .inst16 +// CHECK:STDOUT: .Self = .inst17 // CHECK:STDOUT: witness = invalid // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon b/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon index b539923a5e35..f0f1dc42d9bd 100644 --- a/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon +++ b/toolchain/check/testdata/interface/no_prelude/fail_member_lookup.carbon @@ -187,11 +187,11 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: import Core//default // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc3_22, loaded [symbolic = @ImplicitAs.%Dest (constants.%Dest)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst25 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst26 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc4_35, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon index ab260932bbf4..e9fcae8ec2a5 100644 --- a/toolchain/check/testdata/interface/no_prelude/generic_import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/generic_import.carbon @@ -121,11 +121,11 @@ impl C as AddWith(C) { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.AddWith: %AddWith.type.b35 = import_ref Main//a, AddWith, loaded [concrete = constants.%AddWith.generic] // CHECK:STDOUT: %Main.import_ref.5ab3ec.1: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.476 = import_ref Main//a, inst25 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.476 = import_ref Main//a, inst26 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c77 = import_ref Main//a, loc5_9, unloaded // CHECK:STDOUT: %Main.F: @AddWith.%F.type (%F.type.fbc) = import_ref Main//a, F, loaded [symbolic = @AddWith.%F (constants.%F.be3)] // CHECK:STDOUT: %Main.import_ref.5ab3ec.2: type = import_ref Main//a, loc4_19, loaded [symbolic = @AddWith.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.5a4: @AddWith.%AddWith.type (%AddWith.type.bc7) = import_ref Main//a, inst25 [no loc], loaded [symbolic = @AddWith.%Self (constants.%Self.deb)] +// CHECK:STDOUT: %Main.import_ref.5a4: @AddWith.%AddWith.type (%AddWith.type.bc7) = import_ref Main//a, inst26 [no loc], loaded [symbolic = @AddWith.%Self (constants.%Self.deb)] // CHECK:STDOUT: %Main.import_ref.0c5 = import_ref Main//a, loc5_9, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/no_prelude/import.carbon b/toolchain/check/testdata/interface/no_prelude/import.carbon index 6dc922986517..4d5d931b97a9 100644 --- a/toolchain/check/testdata/interface/no_prelude/import.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import.carbon @@ -181,13 +181,13 @@ var f: ForwardDeclared* = &f_ref.f; // CHECK:STDOUT: %Main.Basic: type = import_ref Main//a, Basic, loaded [concrete = constants.%Basic.type] // CHECK:STDOUT: %Main.ForwardDeclared: type = import_ref Main//a, ForwardDeclared, loaded [concrete = constants.%ForwardDeclared.type] // CHECK:STDOUT: %Main.f_ref: ref %struct_type.f = import_ref Main//a, f_ref, loaded -// CHECK:STDOUT: %Main.import_ref.cc0 = import_ref Main//a, inst16 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//a, inst20 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cc0 = import_ref Main//a, inst17 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.37f = import_ref Main//a, inst21 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.3d5: %Basic.assoc_type = import_ref Main//a, loc8_8, loaded [concrete = constants.%assoc0.fee] // CHECK:STDOUT: %Main.import_ref.760: %Basic.assoc_type = import_ref Main//a, loc9_9, loaded [concrete = constants.%assoc1.4ea] // CHECK:STDOUT: %Main.T.44f = import_ref Main//a, T, unloaded // CHECK:STDOUT: %Main.F.eea = import_ref Main//a, F, unloaded -// CHECK:STDOUT: %Main.import_ref.52b = import_ref Main//a, inst34 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.52b = import_ref Main//a, inst35 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.ad1: %ForwardDeclared.assoc_type = import_ref Main//a, loc16_8, loaded [concrete = constants.%assoc0.d40] // CHECK:STDOUT: %Main.import_ref.339: %ForwardDeclared.assoc_type = import_ref Main//a, loc17_9, loaded [concrete = constants.%assoc1.e3d] // CHECK:STDOUT: %Main.T.6ee = import_ref Main//a, T, unloaded diff --git a/toolchain/check/testdata/interface/no_prelude/import_access.carbon b/toolchain/check/testdata/interface/no_prelude/import_access.carbon index 27656a6795d6..c4ef4a0fc7f3 100644 --- a/toolchain/check/testdata/interface/no_prelude/import_access.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import_access.carbon @@ -209,7 +209,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.Def: type = import_ref Test//def, Def, loaded [concrete = constants.%Def.type] -// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst16 [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref = import_ref Test//def, inst17 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -316,7 +316,7 @@ private interface Redecl {} // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Test.ForwardWithDef: type = import_ref Test//forward_with_def, ForwardWithDef, loaded [concrete = constants.%ForwardWithDef.type] -// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst17 [no loc], unloaded +// CHECK:STDOUT: %Test.import_ref = import_ref Test//forward_with_def, inst18 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon b/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon index caa3238e7a6f..d3e27c6e6838 100644 --- a/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon +++ b/toolchain/check/testdata/interface/no_prelude/import_interface_decl.carbon @@ -97,7 +97,7 @@ impl library "[[@TEST_NAME]]"; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.B = import_ref Main//b, B, unloaded -// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//b, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.420 = import_ref Main//b, inst17 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e5c: type = import_ref Main//b, loc7_7, loaded [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %Main.import_ref.171: type = import_ref Main//b, loc7_12, loaded [concrete = constants.%B.type] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon index 43dafc7ae4cc..f84faf3f44c1 100644 --- a/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon +++ b/toolchain/check/testdata/interface/no_prelude/syntactic_merge.carbon @@ -606,7 +606,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1] // CHECK:STDOUT: %Main.Bar: %Bar.type.982aac.1 = import_ref Main//two_file, Bar, loaded [concrete = constants.%Bar.generic.4bda5e.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//two_file, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f97b44.1: %C = import_ref Main//two_file, loc7_15, loaded [symbolic = @Foo.1.%a (constants.%a)] // CHECK:STDOUT: %Main.import_ref.f97b44.2: %C = import_ref Main//two_file, loc8_15, loaded [symbolic = @Bar.1.%a (constants.%a)] // CHECK:STDOUT: } @@ -1030,7 +1030,7 @@ interface Foo(a:! const (const C)) {} // CHECK:STDOUT: %Main.C: type = import_ref Main//alias_two_file, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.Foo: %Foo.type.5380b8.1 = import_ref Main//alias_two_file, Foo, loaded [concrete = constants.%Foo.generic.ec3175.1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//alias_two_file, loc4_10, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//alias_two_file, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.f97: %C = import_ref Main//alias_two_file, loc6_15, loaded [symbolic = @Foo.1.%a (constants.%a)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index 3ff37dbd29e1..b0527577e2de 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -565,12 +565,12 @@ impl i32 as Empty { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %F.decl -// CHECK:STDOUT: .x = .inst30.loc14_7 +// CHECK:STDOUT: .x = .inst31.loc14_7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() -> %empty_tuple.type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, .inst30.loc14_7 +// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, .inst31.loc14_7 // CHECK:STDOUT: return %x.ref // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/let/fail_missing_value.carbon b/toolchain/check/testdata/let/fail_missing_value.carbon index 7cd449290685..0adc5ee14422 100644 --- a/toolchain/check/testdata/let/fail_missing_value.carbon +++ b/toolchain/check/testdata/let/fail_missing_value.carbon @@ -42,7 +42,7 @@ fn F() { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .n = .inst44.loc15_5 +// CHECK:STDOUT: .n = .inst45.loc15_5 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core diff --git a/toolchain/check/testdata/namespace/merging_with_indirections.carbon b/toolchain/check/testdata/namespace/merging_with_indirections.carbon index 53ddc7a74b7b..5fe37ec317d1 100644 --- a/toolchain/check/testdata/namespace/merging_with_indirections.carbon +++ b/toolchain/check/testdata/namespace/merging_with_indirections.carbon @@ -100,7 +100,7 @@ fn Run() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//a, loc5_14, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.ca8 = import_ref Other//a, inst18 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.ca8 = import_ref Other//a, inst19 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -174,8 +174,8 @@ fn Run() { // CHECK:STDOUT: import Other//a // CHECK:STDOUT: } // CHECK:STDOUT: %Other.F: %F.type = import_ref Other//b, F, loaded [concrete = constants.%F] -// CHECK:STDOUT: %Other.import_ref.8db: = import_ref Other//b, inst29 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.bbd = import_ref Other//b, inst30 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.8db: = import_ref Other//b, inst30 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.bbd = import_ref Other//b, inst31 [indirect], unloaded // CHECK:STDOUT: %Other.NS1: = import_ref Other//b, NS1, loaded // CHECK:STDOUT: %NS1: = namespace %Other.NS1, [concrete] { // CHECK:STDOUT: .A = %Other.A diff --git a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon index 5f5b937f2f2c..12d85af8bf59 100644 --- a/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/no_prelude/index.carbon @@ -102,7 +102,7 @@ fn F() { ()[()]; } // CHECK:STDOUT: import Core//core_wrong_index_with // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.8f2: = import_ref Core//core_wrong_index_with, loc4_18, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Core.import_ref.4c7 = import_ref Core//core_wrong_index_with, inst15 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.4c7 = import_ref Core//core_wrong_index_with, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -292,11 +292,11 @@ fn F() { ()[()]; } // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IndexWith: %IndexWith.type.504 = import_ref Core//core_wrong_arg_count, IndexWith, loaded [concrete = constants.%IndexWith.generic] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//core_wrong_arg_count, loc4_21, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)] -// CHECK:STDOUT: %Core.import_ref.68a = import_ref Core//core_wrong_arg_count, inst25 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.68a = import_ref Core//core_wrong_arg_count, inst26 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.613: @IndexWith.%IndexWith.assoc_type (%IndexWith.assoc_type.290) = import_ref Core//core_wrong_arg_count, loc5_52, loaded [symbolic = @IndexWith.%assoc0 (constants.%assoc0.e1e)] // CHECK:STDOUT: %Core.At: @IndexWith.%At.type (%At.type.cf4) = import_ref Core//core_wrong_arg_count, At, loaded [symbolic = @IndexWith.%At (constants.%At.281)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//core_wrong_arg_count, loc4_21, loaded [symbolic = @IndexWith.%SubscriptType (constants.%SubscriptType)] -// CHECK:STDOUT: %Core.import_ref.fb5: @IndexWith.%IndexWith.type (%IndexWith.type.bd2) = import_ref Core//core_wrong_arg_count, inst25 [no loc], loaded [symbolic = @IndexWith.%Self (constants.%Self.30a)] +// CHECK:STDOUT: %Core.import_ref.fb5: @IndexWith.%IndexWith.type (%IndexWith.type.bd2) = import_ref Core//core_wrong_arg_count, inst26 [no loc], loaded [symbolic = @IndexWith.%Self (constants.%Self.30a)] // CHECK:STDOUT: %Core.import_ref.e99: @IndexWith.%At.type (%At.type.cf4) = import_ref Core//core_wrong_arg_count, loc5_52, loaded [symbolic = @IndexWith.%At (constants.%At.281)] // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon index af8d1a6f0f23..7fd8d78f49a6 100644 --- a/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon +++ b/toolchain/check/testdata/packages/no_prelude/cross_package_export.carbon @@ -293,7 +293,7 @@ alias C = Other.C; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -325,7 +325,7 @@ alias C = Other.C; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -356,9 +356,9 @@ alias C = Other.C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -396,7 +396,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -459,7 +459,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -522,7 +522,7 @@ alias C = Other.C; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Other.import_ref.56d: = import_ref Other//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2c4 = import_ref Other//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.import_ref.276 = import_ref Other//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -582,9 +582,9 @@ alias C = Other.C; // CHECK:STDOUT: import Other//export_name // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -644,9 +644,9 @@ alias C = Other.C; // CHECK:STDOUT: import Other//export_name_copy // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -705,9 +705,9 @@ alias C = Other.C; // CHECK:STDOUT: import Other//export_name_indirect // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name_indirect, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.328: = import_ref Other//export_name_indirect, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.db8 = import_ref Other//export_name_indirect, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.3ef = import_ref Other//export_name_indirect, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.328: = import_ref Other//export_name_indirect, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.db8 = import_ref Other//export_name_indirect, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.3ef = import_ref Other//export_name_indirect, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -772,9 +772,9 @@ alias C = Other.C; // CHECK:STDOUT: import Other//base // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -895,9 +895,9 @@ alias C = Other.C; // CHECK:STDOUT: import Other//conflict // CHECK:STDOUT: } // CHECK:STDOUT: %Other.C: type = import_ref Other//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst21 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst22 [indirect], unloaded -// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.ad3: = import_ref Other//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Other.import_ref.6a9 = import_ref Other//export_name, inst23 [indirect], unloaded +// CHECK:STDOUT: %Other.import_ref.f67 = import_ref Other//export_name, inst24 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/packages/no_prelude/export_import.carbon b/toolchain/check/testdata/packages/no_prelude/export_import.carbon index ec9b8b2815ee..01d50e0ed79e 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_import.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_import.carbon @@ -302,7 +302,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -360,7 +360,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_export, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -415,7 +415,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -469,7 +469,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -523,7 +523,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -577,7 +577,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -631,7 +631,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -685,7 +685,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -751,7 +751,7 @@ export Poison; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -806,7 +806,7 @@ export Poison; // CHECK:STDOUT: %Main.c = import_ref Main//use_non_export_then_base, c, unloaded // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon index 83eec0148f4b..8059c15c69d6 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_mixed.carbon @@ -193,7 +193,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -227,7 +227,7 @@ var d: D = {.y = ()}; // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D = import_ref Main//base, D, unloaded // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -274,9 +274,9 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -328,9 +328,9 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_name, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_name, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_name, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_name, inst25 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -382,9 +382,9 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -471,9 +471,9 @@ var d: D = {.y = ()}; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -530,11 +530,11 @@ var d: D = {.y = ()}; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//export_import_then_name, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.D: type = import_ref Main//base, D, loaded [concrete = constants.%D] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst22 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst23 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export_import_then_name, inst23 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export_import_then_name, inst24 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export_import_then_name, inst25 [indirect], unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc10_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//base, inst28 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.cab = import_ref Main//base, inst29 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.950 = import_ref Main//base, loc9_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/export_name.carbon b/toolchain/check/testdata/packages/no_prelude/export_name.carbon index cccb1593afad..0e7605308ff0 100644 --- a/toolchain/check/testdata/packages/no_prelude/export_name.carbon +++ b/toolchain/check/testdata/packages/no_prelude/export_name.carbon @@ -275,10 +275,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst29 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst30 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//base, loc10_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -345,12 +345,12 @@ private export C; // CHECK:STDOUT: .NSC = file.%NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4] +// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -407,12 +407,12 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4] +// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -501,12 +501,12 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC] -// CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst26 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst33 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst27 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4] +// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst35 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -596,12 +596,12 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC] -// CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst26 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst33 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.328: = import_ref Main//export_export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.db8 = import_ref Main//export_export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.3ef = import_ref Main//export_export, inst27 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.c12: = import_ref Main//export_export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4] +// CHECK:STDOUT: %Main.import_ref.1cb = import_ref Main//export_export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.b18 = import_ref Main//export_export, inst35 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -725,7 +725,7 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -768,10 +768,10 @@ private export C; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC] // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.5ab: = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst29 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.31c = import_ref Main//base, inst30 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//base, loc10_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -861,12 +861,12 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst24 [indirect], loaded [concrete = constants.%complete_type.9be] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst26 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst32 [indirect], loaded [concrete = constants.%complete_type.9f4] -// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst33 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//export, inst25 [indirect], loaded [concrete = constants.%complete_type.9be] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//export, inst27 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.63c: = import_ref Main//export, inst33 [indirect], loaded [concrete = constants.%complete_type.9f4] +// CHECK:STDOUT: %Main.import_ref.f0b = import_ref Main//export, inst34 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ebc = import_ref Main//export, inst35 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -966,7 +966,7 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1000,9 +1000,9 @@ private export C; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C: type = import_ref Main//repeat_export, C, loaded [concrete = constants.%C] -// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//repeat_export, inst24 [indirect], loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//repeat_export, inst25 [indirect], unloaded -// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//repeat_export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.ad3: = import_ref Main//repeat_export, inst25 [indirect], loaded [concrete = constants.%complete_type] +// CHECK:STDOUT: %Main.import_ref.6a9 = import_ref Main//repeat_export, inst26 [indirect], unloaded +// CHECK:STDOUT: %Main.import_ref.f67 = import_ref Main//repeat_export, inst27 [indirect], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1057,7 +1057,7 @@ private export C; // CHECK:STDOUT: .NSC = %Main.NSC // CHECK:STDOUT: } // CHECK:STDOUT: %Main.import_ref.56d: = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2c4 = import_ref Main//base, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.276 = import_ref Main//base, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon index cabcbbf5a9c0..366b42bd6f21 100644 --- a/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon +++ b/toolchain/check/testdata/packages/no_prelude/fail_export_name_member.carbon @@ -77,7 +77,7 @@ export C.n; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Foo.C: type = import_ref Foo//a, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Foo.import_ref.9fc: = import_ref Foo//a, loc6_1, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Foo.import_ref.2c4 = import_ref Foo//a, inst15 [no loc], unloaded +// CHECK:STDOUT: %Foo.import_ref.2c4 = import_ref Foo//a, inst16 [no loc], unloaded // CHECK:STDOUT: %Foo.import_ref.4cb = import_ref Foo//a, loc5_8, unloaded // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon index 3110c0f963cc..08db934ebbbb 100644 --- a/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon +++ b/toolchain/check/testdata/packages/no_prelude/implicit_imports_entities.carbon @@ -334,9 +334,9 @@ import Other library "o1"; // CHECK:STDOUT: %Main.C1: type = import_ref Main//mix_current_package, C1, loaded [concrete = constants.%C1] // CHECK:STDOUT: %Main.C2: type = import_ref Main//c2, C2, loaded [concrete = constants.%C2] // CHECK:STDOUT: %Main.import_ref.8f24d3.1: = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst16 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.8f24d3.2: = import_ref Main//c2, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.5b0 = import_ref Main//c2, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.5b0 = import_ref Main//c2, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -416,7 +416,7 @@ import Other library "o1"; // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.C1: type = import_ref Main//dup_c1, C1, loaded [concrete = constants.%C1] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//c1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst15 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.eb7 = import_ref Main//c1, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -483,7 +483,7 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %Main.C: type = import_ref Main//use_ns, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.8f2: = import_ref Main//ns, loc5_13, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Main.import_ref.2dd = import_ref Main//ns, inst16 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.2dd = import_ref Main//ns, inst17 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -556,10 +556,10 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1] // CHECK:STDOUT: %Other.import_ref.8f24d3.1: = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst16 [no loc], unloaded // CHECK:STDOUT: %Other.O2: type = import_ref Other//o2, O2, loaded [concrete = constants.%O2] // CHECK:STDOUT: %Other.import_ref.8f24d3.2: = import_ref Other//o2, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.2eb = import_ref Other//o2, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.2eb = import_ref Other//o2, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -651,7 +651,7 @@ import Other library "o1"; // CHECK:STDOUT: } // CHECK:STDOUT: %Other.O1: type = import_ref Other//o1, O1, loaded [concrete = constants.%O1] // CHECK:STDOUT: %Other.import_ref.8f2: = import_ref Other//o1, loc4_11, loaded [concrete = constants.%complete_type] -// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst15 [no loc], unloaded +// CHECK:STDOUT: %Other.import_ref.481 = import_ref Other//o1, inst16 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon index 080ff68d7d47..d89614db45f0 100644 --- a/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon +++ b/toolchain/check/testdata/return/no_prelude/import_convert_function.carbon @@ -385,11 +385,11 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//default, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst48 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, Convert, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst48 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst49 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Core.import_ref.de9: = import_ref Core//default, loc12_38, loaded [concrete = constants.%impl_witness.39c7] // CHECK:STDOUT: %Core.import_ref.872: type = import_ref Core//default, loc12_17, loaded [concrete = Core.IntLiteral] @@ -1184,19 +1184,19 @@ fn F0(n: i32) -> P.D { // CHECK:STDOUT: } // CHECK:STDOUT: %P.D: type = import_ref P//library, D, loaded [concrete = constants.%D] // CHECK:STDOUT: %P.import_ref.7e5: = import_ref P//library, loc7_35, loaded [concrete = constants.%complete_type.682] -// CHECK:STDOUT: %P.import_ref.cab = import_ref P//library, inst46 [no loc], unloaded +// CHECK:STDOUT: %P.import_ref.cab = import_ref P//library, inst47 [no loc], unloaded // CHECK:STDOUT: %P.import_ref.a99 = import_ref P//library, loc7_16, unloaded // CHECK:STDOUT: %P.import_ref.9d2 = import_ref P//library, loc7_28, unloaded // CHECK:STDOUT: %P.C: %C.type = import_ref P//library, C, loaded [concrete = constants.%C.generic] // CHECK:STDOUT: %P.import_ref.85e: %i32.builtin = import_ref P//library, loc6_9, loaded [symbolic = @C.%N (constants.%N)] // CHECK:STDOUT: %P.import_ref.8f2: = import_ref P//library, loc6_19, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %P.import_ref.d9b = import_ref P//library, inst41 [no loc], unloaded +// CHECK:STDOUT: %P.import_ref.d9b = import_ref P//library, inst42 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.1: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst48 [no loc], unloaded +// CHECK:STDOUT: %Core.import_ref.ff5 = import_ref Core//default, inst49 [no loc], unloaded // CHECK:STDOUT: %Core.import_ref.492: @ImplicitAs.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ca0) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.dc0)] // CHECK:STDOUT: %Core.Convert = import_ref Core//default, Convert, unloaded // CHECK:STDOUT: %Core.import_ref.5ab3ec.2: type = import_ref Core//default, loc8_22, loaded [symbolic = @ImplicitAs.%T (constants.%T)] -// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst48 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] +// CHECK:STDOUT: %Core.import_ref.ce1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.d62) = import_ref Core//default, inst49 [no loc], loaded [symbolic = @ImplicitAs.%Self (constants.%Self.519)] // CHECK:STDOUT: %Core.import_ref.1c7: @ImplicitAs.%Convert.type (%Convert.type.275) = import_ref Core//default, loc9_32, loaded [symbolic = @ImplicitAs.%Convert (constants.%Convert.42e)] // CHECK:STDOUT: %Core.import_ref.de9: = import_ref Core//default, loc12_38, loaded [concrete = constants.%impl_witness.39c] // CHECK:STDOUT: %Core.import_ref.872: type = import_ref Core//default, loc12_17, loaded [concrete = Core.IntLiteral] diff --git a/toolchain/check/testdata/struct/import.carbon b/toolchain/check/testdata/struct/import.carbon index 88fbd9dae811..a71f31b5950a 100644 --- a/toolchain/check/testdata/struct/import.carbon +++ b/toolchain/check/testdata/struct/import.carbon @@ -328,7 +328,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b.5ca = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -505,7 +505,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -622,7 +622,7 @@ var c_bad: C({.a = 3, .b = 4}) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.c81: %struct_type.a.b.5ca = import_ref Implicit//default, loc8_9, loaded [symbolic = @C.%S (constants.%S)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc8_34, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1142 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.b8b = import_ref Implicit//default, inst1143 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/tuple/import.carbon b/toolchain/check/testdata/tuple/import.carbon index 55dfc46412ec..90b9b285aa71 100644 --- a/toolchain/check/testdata/tuple/import.carbon +++ b/toolchain/check/testdata/tuple/import.carbon @@ -358,7 +358,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -551,7 +551,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -669,7 +669,7 @@ var c_bad: C((3, 4)) = F(); // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import_ref.48d: %tuple.type.c2c = import_ref Implicit//default, loc7_9, loaded [symbolic = @C.%X (constants.%X)] // CHECK:STDOUT: %Implicit.import_ref.8f2: = import_ref Implicit//default, loc7_26, loaded [concrete = constants.%complete_type.357] -// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1179 [no loc], unloaded +// CHECK:STDOUT: %Implicit.import_ref.964 = import_ref Implicit//default, inst1180 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/tuple/no_prelude/tuple_pattern.carbon b/toolchain/check/testdata/tuple/no_prelude/tuple_pattern.carbon index cd2e1b8d8382..25a39ebe73b6 100644 --- a/toolchain/check/testdata/tuple/no_prelude/tuple_pattern.carbon +++ b/toolchain/check/testdata/tuple/no_prelude/tuple_pattern.carbon @@ -496,8 +496,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: .x = .inst22.loc9_8 -// CHECK:STDOUT: .y = .inst26.loc9_15 +// CHECK:STDOUT: .x = .inst23.loc9_8 +// CHECK:STDOUT: .y = .inst27.loc9_15 // CHECK:STDOUT: has_error // CHECK:STDOUT: witness = () // CHECK:STDOUT: } @@ -522,7 +522,7 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: // CHECK:STDOUT: class @C { // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %.loc9_20: %tuple.type = tuple_pattern (.inst21.loc9_9, .inst24.loc9_16) +// CHECK:STDOUT: %.loc9_20: %tuple.type = tuple_pattern (.inst22.loc9_9, .inst25.loc9_16) // CHECK:STDOUT: %.loc9_3: %tuple.type = var_pattern %.loc9_20 // CHECK:STDOUT: } // CHECK:STDOUT: %.var: ref %tuple.type = var @@ -531,8 +531,8 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C -// CHECK:STDOUT: .x = .inst21.loc9_9 -// CHECK:STDOUT: .y = .inst24.loc9_16 +// CHECK:STDOUT: .x = .inst22.loc9_9 +// CHECK:STDOUT: .y = .inst25.loc9_16 // CHECK:STDOUT: has_error // CHECK:STDOUT: } // CHECK:STDOUT: @@ -547,10 +547,10 @@ let (a: {}, b: {}) = ({}, {}, {}); // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .x = .inst18.loc8_6 -// CHECK:STDOUT: .y = .inst22.loc8_13 -// CHECK:STDOUT: .a = .inst32.loc14_6 -// CHECK:STDOUT: .b = .inst36.loc14_13 +// CHECK:STDOUT: .x = .inst19.loc8_6 +// CHECK:STDOUT: .y = .inst23.loc8_13 +// CHECK:STDOUT: .a = .inst33.loc14_6 +// CHECK:STDOUT: .b = .inst37.loc14_13 // CHECK:STDOUT: } // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %x.patt: %empty_struct_type = binding_pattern x diff --git a/toolchain/check/testdata/var/no_prelude/fail_in_interface.carbon b/toolchain/check/testdata/var/no_prelude/fail_in_interface.carbon index 1e8ced49ce64..15817bf8655f 100644 --- a/toolchain/check/testdata/var/no_prelude/fail_in_interface.carbon +++ b/toolchain/check/testdata/var/no_prelude/fail_in_interface.carbon @@ -35,7 +35,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self -// CHECK:STDOUT: .v = .inst21.loc16_7 +// CHECK:STDOUT: .v = .inst22.loc16_7 // CHECK:STDOUT: witness = () // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index a5c83039b8e3..81c3cb01425d 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -610,8 +610,8 @@ fn NotEmptyStruct() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.8fd = import_ref Main//state_constraints, inst18 [no loc], unloaded -// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//state_constraints, inst22 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.8fd = import_ref Main//state_constraints, inst19 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//state_constraints, inst23 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.ce7 = import_ref Main//state_constraints, loc7_13, unloaded // CHECK:STDOUT: %Main.import_ref.731 = import_ref Main//state_constraints, loc8_13, unloaded // CHECK:STDOUT: %Main.Member = import_ref Main//state_constraints, Member, unloaded @@ -715,7 +715,7 @@ fn NotEmptyStruct() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref = import_ref Main//state_constraints, inst18 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref = import_ref Main//state_constraints, inst19 [no loc], unloaded // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index ed1e680b3d3e..83d09c7e8544 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -1218,11 +1218,11 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Main.import_ref.169 = import_ref Main//equal_constraint, inst18 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.169 = import_ref Main//equal_constraint, inst19 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.56b = import_ref Main//equal_constraint, loc5_8, unloaded // CHECK:STDOUT: %Main.P = import_ref Main//equal_constraint, P, unloaded // CHECK:STDOUT: %Main.import_ref.3bc: %N_where.type = import_ref Main//equal_constraint, loc8_10, loaded [symbolic = @Equal.1.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//nested_rewrites, inst18 [no loc], unloaded +// CHECK:STDOUT: %Main.import_ref.b61 = import_ref Main//nested_rewrites, inst19 [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.38f = import_ref Main//nested_rewrites, loc5_8, unloaded // CHECK:STDOUT: %Main.import_ref.30f = import_ref Main//nested_rewrites, loc6_8, unloaded // CHECK:STDOUT: %Main.B = import_ref Main//nested_rewrites, B, unloaded diff --git a/toolchain/check/type_completion.cpp b/toolchain/check/type_completion.cpp index 07e87f342a6c..a2d05161fb7a 100644 --- a/toolchain/check/type_completion.cpp +++ b/toolchain/check/type_completion.cpp @@ -140,6 +140,10 @@ class TypeCompleter { auto BuildInfoForInst(SemIR::TypeId /*type_id*/, SemIR::ConstType inst) const -> SemIR::CompleteTypeInfo; + auto BuildInfoForInst(SemIR::TypeId /*type_id*/, + SemIR::ImplWitnessAssociatedConstant inst) const + -> SemIR::CompleteTypeInfo; + template requires(InstT::Kind.constant_kind() == SemIR::InstConstantKind::SymbolicOnly || @@ -502,6 +506,12 @@ auto TypeCompleter::BuildInfoForInst(SemIR::TypeId /*type_id*/, return GetNestedInfo(context_->types().GetTypeIdForTypeInstId(inst.inner_id)); } +auto TypeCompleter::BuildInfoForInst( + SemIR::TypeId /*type_id*/, SemIR::ImplWitnessAssociatedConstant inst) const + -> SemIR::CompleteTypeInfo { + return GetNestedInfo(inst.type_id); +} + // Builds and returns the value representation for the given type. All nested // types, as found by AddNestedIncompleteTypes, are known to be complete. auto TypeCompleter::BuildInfo(SemIR::TypeId type_id, SemIR::Inst inst) const diff --git a/toolchain/check/type_structure.cpp b/toolchain/check/type_structure.cpp index 8ede93382db4..fcdeb34e3266 100644 --- a/toolchain/check/type_structure.cpp +++ b/toolchain/check/type_structure.cpp @@ -128,7 +128,9 @@ class TypeStructureBuilder { // The self type comes first in the type structure, so we push it last, as // the queue works from the back. Push(interface_constraint); - PushInstId(self_inst_id); + if (self_inst_id.has_value()) { + PushInstId(self_inst_id); + } BuildTypeStructure(); // TODO: This requires 4 SmallVector moves (two here and two in the @@ -266,6 +268,10 @@ class TypeStructureBuilder { PushInstId(const_type.inner_id); break; } + case CARBON_KIND(SemIR::ImplWitnessAssociatedConstant assoc): { + Push(assoc.type_id); + break; + } case CARBON_KIND(SemIR::PointerType pointer_type): { AppendStructural(TypeStructure::Structural::ConcreteOpenParen); Push(CloseType()); diff --git a/toolchain/driver/testdata/compile/multifile_raw_and_textual_ir.carbon b/toolchain/driver/testdata/compile/multifile_raw_and_textual_ir.carbon index 4235153012c3..97e5ff4aa94d 100644 --- a/toolchain/driver/testdata/compile/multifile_raw_and_textual_ir.carbon +++ b/toolchain/driver/testdata/compile/multifile_raw_and_textual_ir.carbon @@ -33,7 +33,7 @@ fn B() { // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst14}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst15}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]} @@ -49,38 +49,38 @@ 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(inst15)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)} // CHECK:STDOUT: 'type(inst16)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} +// CHECK:STDOUT: 'type(inst17)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} // CHECK:STDOUT: type_blocks: // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst15: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst16: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst17: {kind: StructValue, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst18: {kind: Return} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)} +// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst17: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)} +// CHECK:STDOUT: inst19: {kind: Return} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) -// CHECK:STDOUT: inst14: concrete_constant(inst17) -// CHECK:STDOUT: inst15: concrete_constant(inst15) +// CHECK:STDOUT: inst14: concrete_constant(inst14) +// CHECK:STDOUT: inst15: concrete_constant(inst18) // CHECK:STDOUT: inst16: concrete_constant(inst16) // CHECK:STDOUT: inst17: concrete_constant(inst17) +// CHECK:STDOUT: inst18: concrete_constant(inst18) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 0: inst15 // CHECK:STDOUT: import_refs: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst18 +// CHECK:STDOUT: 0: inst19 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst14 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst15 // CHECK:STDOUT: ... // CHECK:STDOUT: // CHECK:STDOUT: --- a.carbon @@ -107,13 +107,13 @@ fn B() { // CHECK:STDOUT: sem_ir: // CHECK:STDOUT: import_irs: // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} -// CHECK:STDOUT: ir1: {decl_id: inst14, is_export: false} +// CHECK:STDOUT: ir1: {decl_id: inst15, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst14} -// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst14} +// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst15} +// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst15} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst15, name0: inst16}} -// CHECK:STDOUT: name_scope1: {inst: inst15, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst21}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}} +// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0} // CHECK:STDOUT: functions: @@ -131,62 +131,62 @@ 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(inst17)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} // CHECK:STDOUT: 'type(inst18)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} -// CHECK:STDOUT: 'type(inst23)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(inst19)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(inst24)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} // CHECK:STDOUT: type_blocks: // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst15: {kind: Namespace, arg0: name_scope1, arg1: inst14, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst16: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst17)} -// CHECK:STDOUT: inst17: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: StructValue, arg0: inst_block_empty, type: type(inst17)} -// CHECK:STDOUT: inst20: {kind: NameRef, arg0: name1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst21: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst23)} -// CHECK:STDOUT: inst22: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst23: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst24: {kind: StructValue, arg0: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst25: {kind: NameRef, arg0: name1, arg1: inst21, type: type(inst23)} -// CHECK:STDOUT: inst26: {kind: Call, arg0: inst25, arg1: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst27: {kind: Return} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)} +// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst19: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)} +// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)} +// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)} +// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)} +// CHECK:STDOUT: inst28: {kind: Return} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) -// CHECK:STDOUT: inst15: concrete_constant(inst15) -// CHECK:STDOUT: inst16: concrete_constant(inst19) -// CHECK:STDOUT: inst17: concrete_constant(inst17) +// CHECK:STDOUT: inst14: concrete_constant(inst14) +// CHECK:STDOUT: inst16: concrete_constant(inst16) +// CHECK:STDOUT: inst17: concrete_constant(inst20) // CHECK:STDOUT: inst18: concrete_constant(inst18) // CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst15) -// CHECK:STDOUT: inst21: concrete_constant(inst24) -// CHECK:STDOUT: inst22: concrete_constant(inst24) -// CHECK:STDOUT: inst23: concrete_constant(inst23) +// CHECK:STDOUT: inst20: concrete_constant(inst20) +// CHECK:STDOUT: inst21: concrete_constant(inst16) +// CHECK:STDOUT: inst22: concrete_constant(inst25) +// CHECK:STDOUT: inst23: concrete_constant(inst25) // CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst25: concrete_constant(inst24) +// CHECK:STDOUT: inst25: concrete_constant(inst25) +// CHECK:STDOUT: inst26: concrete_constant(inst25) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 0: inst17 // CHECK:STDOUT: import_refs: -// CHECK:STDOUT: 0: inst15 -// CHECK:STDOUT: 1: inst21 +// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 1: inst22 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst20 -// CHECK:STDOUT: 1: inst25 -// CHECK:STDOUT: 2: inst26 -// CHECK:STDOUT: 3: inst27 +// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 1: inst26 +// CHECK:STDOUT: 2: inst27 +// CHECK:STDOUT: 3: inst28 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst14 -// CHECK:STDOUT: 2: inst16 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst15 +// CHECK:STDOUT: 2: inst17 // CHECK:STDOUT: ... // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon diff --git a/toolchain/driver/testdata/compile/multifile_raw_ir.carbon b/toolchain/driver/testdata/compile/multifile_raw_ir.carbon index 46ff978e1718..2cc22ed1df86 100644 --- a/toolchain/driver/testdata/compile/multifile_raw_ir.carbon +++ b/toolchain/driver/testdata/compile/multifile_raw_ir.carbon @@ -33,7 +33,7 @@ fn B() { // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst14}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst15}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]} @@ -49,51 +49,51 @@ 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(inst15)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)} // CHECK:STDOUT: 'type(inst16)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst16)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} +// CHECK:STDOUT: 'type(inst17)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} // CHECK:STDOUT: type_blocks: // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst15: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst16: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst17: {kind: StructValue, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst18: {kind: Return} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)} +// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst17: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)} +// CHECK:STDOUT: inst19: {kind: Return} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) -// CHECK:STDOUT: inst14: concrete_constant(inst17) -// CHECK:STDOUT: inst15: concrete_constant(inst15) +// CHECK:STDOUT: inst14: concrete_constant(inst14) +// CHECK:STDOUT: inst15: concrete_constant(inst18) // CHECK:STDOUT: inst16: concrete_constant(inst16) // CHECK:STDOUT: inst17: concrete_constant(inst17) +// CHECK:STDOUT: inst18: concrete_constant(inst18) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 0: inst15 // CHECK:STDOUT: import_refs: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst18 +// CHECK:STDOUT: 0: inst19 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst14 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst15 // CHECK:STDOUT: ... // CHECK:STDOUT: --- // CHECK:STDOUT: filename: b.carbon // CHECK:STDOUT: sem_ir: // CHECK:STDOUT: import_irs: // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} -// CHECK:STDOUT: ir1: {decl_id: inst14, is_export: false} +// CHECK:STDOUT: ir1: {decl_id: inst15, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst14} -// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst14} +// CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, inst_id: inst15} +// CHECK:STDOUT: import_ir_inst1: {ir_id: ir1, inst_id: inst15} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst15, name0: inst16}} -// CHECK:STDOUT: name_scope1: {inst: inst15, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst21}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}} +// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0} // CHECK:STDOUT: functions: @@ -111,60 +111,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(inst17)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} // CHECK:STDOUT: 'type(inst18)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} -// CHECK:STDOUT: 'type(inst23)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst18)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(inst19)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(inst24)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} // CHECK:STDOUT: type_blocks: // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst15: {kind: Namespace, arg0: name_scope1, arg1: inst14, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst16: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst17)} -// CHECK:STDOUT: inst17: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: StructValue, arg0: inst_block_empty, type: type(inst17)} -// CHECK:STDOUT: inst20: {kind: NameRef, arg0: name1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst21: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst23)} -// CHECK:STDOUT: inst22: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst23: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst24: {kind: StructValue, arg0: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst25: {kind: NameRef, arg0: name1, arg1: inst21, type: type(inst23)} -// CHECK:STDOUT: inst26: {kind: Call, arg0: inst25, arg1: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst27: {kind: Return} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)} +// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst19: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)} +// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)} +// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)} +// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)} +// CHECK:STDOUT: inst28: {kind: Return} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) -// CHECK:STDOUT: inst15: concrete_constant(inst15) -// CHECK:STDOUT: inst16: concrete_constant(inst19) -// CHECK:STDOUT: inst17: concrete_constant(inst17) +// CHECK:STDOUT: inst14: concrete_constant(inst14) +// CHECK:STDOUT: inst16: concrete_constant(inst16) +// CHECK:STDOUT: inst17: concrete_constant(inst20) // CHECK:STDOUT: inst18: concrete_constant(inst18) // CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst15) -// CHECK:STDOUT: inst21: concrete_constant(inst24) -// CHECK:STDOUT: inst22: concrete_constant(inst24) -// CHECK:STDOUT: inst23: concrete_constant(inst23) +// CHECK:STDOUT: inst20: concrete_constant(inst20) +// CHECK:STDOUT: inst21: concrete_constant(inst16) +// CHECK:STDOUT: inst22: concrete_constant(inst25) +// CHECK:STDOUT: inst23: concrete_constant(inst25) // CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst25: concrete_constant(inst24) +// CHECK:STDOUT: inst25: concrete_constant(inst25) +// CHECK:STDOUT: inst26: concrete_constant(inst25) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 0: inst17 // CHECK:STDOUT: import_refs: -// CHECK:STDOUT: 0: inst15 -// CHECK:STDOUT: 1: inst21 +// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 1: inst22 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst20 -// CHECK:STDOUT: 1: inst25 -// CHECK:STDOUT: 2: inst26 -// CHECK:STDOUT: 3: inst27 +// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 1: inst26 +// CHECK:STDOUT: 2: inst27 +// CHECK:STDOUT: 3: inst28 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst14 -// CHECK:STDOUT: 2: inst16 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst15 +// CHECK:STDOUT: 2: inst17 // CHECK:STDOUT: ... diff --git a/toolchain/driver/testdata/compile/raw_and_textual_ir.carbon b/toolchain/driver/testdata/compile/raw_and_textual_ir.carbon index ea3ad14e3141..f80182dbe184 100644 --- a/toolchain/driver/testdata/compile/raw_and_textual_ir.carbon +++ b/toolchain/driver/testdata/compile/raw_and_textual_ir.carbon @@ -23,11 +23,11 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst33}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst34}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block7, return_slot_pattern: inst28, body: [inst_block10]} +// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block7, return_slot_pattern: inst29, body: [inst_block10]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -40,140 +40,140 @@ 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(inst34)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst14)} -// CHECK:STDOUT: 'type(inst14)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst14)} -// CHECK:STDOUT: 'type(inst22)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst36)} -// CHECK:STDOUT: 'type(inst36)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst36)} +// CHECK:STDOUT: 'type(inst35)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)} +// CHECK:STDOUT: 'type(inst15)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)} +// CHECK:STDOUT: 'type(inst23)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst37)} +// CHECK:STDOUT: 'type(inst37)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst37)} // CHECK:STDOUT: type_blocks: // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: type_block1: -// CHECK:STDOUT: 0: type(inst14) -// CHECK:STDOUT: 1: type(inst14) +// CHECK:STDOUT: 0: type(inst15) +// CHECK:STDOUT: 1: type(inst15) // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst15: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)} -// CHECK:STDOUT: inst16: {kind: Converted, arg0: inst15, arg1: inst14, type: type(TypeType)} -// CHECK:STDOUT: inst17: {kind: BindName, arg0: entity_name0, arg1: inst29, type: type(inst14)} -// CHECK:STDOUT: inst18: {kind: BindingPattern, arg0: entity_name0, type: type(inst14)} -// CHECK:STDOUT: inst19: {kind: ValueParamPattern, arg0: inst18, arg1: call_param0, type: type(inst14)} -// CHECK:STDOUT: inst20: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)} -// CHECK:STDOUT: inst21: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)} -// CHECK:STDOUT: inst22: {kind: TupleType, arg0: type_block1, type: type(TypeType)} -// CHECK:STDOUT: inst23: {kind: TupleLiteral, arg0: inst_block6, type: type(inst22)} -// CHECK:STDOUT: inst24: {kind: Converted, arg0: inst20, arg1: inst14, type: type(TypeType)} -// CHECK:STDOUT: inst25: {kind: Converted, arg0: inst21, arg1: inst14, type: type(TypeType)} -// CHECK:STDOUT: inst26: {kind: Converted, arg0: inst23, arg1: inst22, type: type(TypeType)} -// CHECK:STDOUT: inst27: {kind: ReturnSlotPattern, arg0: inst23, type: type(inst22)} -// CHECK:STDOUT: inst28: {kind: OutParamPattern, arg0: inst27, arg1: call_param1, type: type(inst22)} -// CHECK:STDOUT: inst29: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst14)} -// CHECK:STDOUT: inst30: {kind: SpliceBlock, arg0: inst_block4, arg1: inst16, type: type(TypeType)} -// CHECK:STDOUT: inst31: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst22)} -// CHECK:STDOUT: inst32: {kind: ReturnSlot, arg0: inst23, arg1: inst31, type: type(inst22)} -// CHECK:STDOUT: inst33: {kind: FunctionDecl, arg0: function0, arg1: inst_block9, type: type(inst34)} -// CHECK:STDOUT: inst34: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst35: {kind: StructValue, arg0: inst_block_empty, type: type(inst34)} -// CHECK:STDOUT: inst36: {kind: PointerType, arg0: inst22, type: type(TypeType)} -// CHECK:STDOUT: inst37: {kind: NameRef, arg0: name1, arg1: inst17, type: type(inst14)} -// CHECK:STDOUT: inst38: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst14)} -// CHECK:STDOUT: inst39: {kind: TupleLiteral, arg0: inst_block11, type: type(inst22)} -// CHECK:STDOUT: inst40: {kind: TupleAccess, arg0: inst32, arg1: element0, type: type(inst14)} -// CHECK:STDOUT: inst41: {kind: TupleInit, arg0: inst_block12, arg1: inst40, type: type(inst14)} -// CHECK:STDOUT: inst42: {kind: TupleValue, arg0: inst_block_empty, type: type(inst14)} -// CHECK:STDOUT: inst43: {kind: Converted, arg0: inst37, arg1: inst41, type: type(inst14)} -// CHECK:STDOUT: inst44: {kind: TupleAccess, arg0: inst32, arg1: element1, type: type(inst14)} -// CHECK:STDOUT: inst45: {kind: TupleInit, arg0: inst_block_empty, arg1: inst44, type: type(inst14)} -// CHECK:STDOUT: inst46: {kind: Converted, arg0: inst38, arg1: inst45, type: type(inst14)} -// CHECK:STDOUT: inst47: {kind: TupleInit, arg0: inst_block13, arg1: inst32, type: type(inst22)} -// CHECK:STDOUT: inst48: {kind: TupleValue, arg0: inst_block14, type: type(inst22)} -// CHECK:STDOUT: inst49: {kind: Converted, arg0: inst39, arg1: inst47, type: type(inst22)} -// CHECK:STDOUT: inst50: {kind: ReturnExpr, arg0: inst49, arg1: inst32} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst15: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst16: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} +// CHECK:STDOUT: inst17: {kind: Converted, arg0: inst16, arg1: inst15, type: type(TypeType)} +// CHECK:STDOUT: inst18: {kind: BindName, arg0: entity_name0, arg1: inst30, type: type(inst15)} +// CHECK:STDOUT: inst19: {kind: BindingPattern, arg0: entity_name0, type: type(inst15)} +// CHECK:STDOUT: inst20: {kind: ValueParamPattern, arg0: inst19, arg1: call_param0, type: type(inst15)} +// CHECK:STDOUT: inst21: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} +// CHECK:STDOUT: inst22: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} +// CHECK:STDOUT: inst23: {kind: TupleType, arg0: type_block1, type: type(TypeType)} +// CHECK:STDOUT: inst24: {kind: TupleLiteral, arg0: inst_block6, type: type(inst23)} +// CHECK:STDOUT: inst25: {kind: Converted, arg0: inst21, arg1: inst15, type: type(TypeType)} +// CHECK:STDOUT: inst26: {kind: Converted, arg0: inst22, arg1: inst15, type: type(TypeType)} +// CHECK:STDOUT: inst27: {kind: Converted, arg0: inst24, arg1: inst23, type: type(TypeType)} +// CHECK:STDOUT: inst28: {kind: ReturnSlotPattern, arg0: inst24, type: type(inst23)} +// CHECK:STDOUT: inst29: {kind: OutParamPattern, arg0: inst28, arg1: call_param1, type: type(inst23)} +// CHECK:STDOUT: inst30: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst15)} +// CHECK:STDOUT: inst31: {kind: SpliceBlock, arg0: inst_block4, arg1: inst17, type: type(TypeType)} +// CHECK:STDOUT: inst32: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst23)} +// CHECK:STDOUT: inst33: {kind: ReturnSlot, arg0: inst24, arg1: inst32, type: type(inst23)} +// CHECK:STDOUT: inst34: {kind: FunctionDecl, arg0: function0, arg1: inst_block9, type: type(inst35)} +// CHECK:STDOUT: inst35: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst36: {kind: StructValue, arg0: inst_block_empty, type: type(inst35)} +// CHECK:STDOUT: inst37: {kind: PointerType, arg0: inst23, type: type(TypeType)} +// CHECK:STDOUT: inst38: {kind: NameRef, arg0: name1, arg1: inst18, type: type(inst15)} +// CHECK:STDOUT: inst39: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} +// CHECK:STDOUT: inst40: {kind: TupleLiteral, arg0: inst_block11, type: type(inst23)} +// CHECK:STDOUT: inst41: {kind: TupleAccess, arg0: inst33, arg1: element0, type: type(inst15)} +// CHECK:STDOUT: inst42: {kind: TupleInit, arg0: inst_block12, arg1: inst41, type: type(inst15)} +// CHECK:STDOUT: inst43: {kind: TupleValue, arg0: inst_block_empty, type: type(inst15)} +// CHECK:STDOUT: inst44: {kind: Converted, arg0: inst38, arg1: inst42, type: type(inst15)} +// CHECK:STDOUT: inst45: {kind: TupleAccess, arg0: inst33, arg1: element1, type: type(inst15)} +// CHECK:STDOUT: inst46: {kind: TupleInit, arg0: inst_block_empty, arg1: inst45, type: type(inst15)} +// CHECK:STDOUT: inst47: {kind: Converted, arg0: inst39, arg1: inst46, type: type(inst15)} +// CHECK:STDOUT: inst48: {kind: TupleInit, arg0: inst_block13, arg1: inst33, type: type(inst23)} +// CHECK:STDOUT: inst49: {kind: TupleValue, arg0: inst_block14, type: type(inst23)} +// CHECK:STDOUT: inst50: {kind: Converted, arg0: inst40, arg1: inst48, type: type(inst23)} +// CHECK:STDOUT: inst51: {kind: ReturnExpr, arg0: inst50, arg1: inst33} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst16: concrete_constant(inst14) -// CHECK:STDOUT: inst22: concrete_constant(inst22) -// CHECK:STDOUT: inst24: concrete_constant(inst14) -// CHECK:STDOUT: inst25: concrete_constant(inst14) -// CHECK:STDOUT: inst26: concrete_constant(inst22) -// CHECK:STDOUT: inst30: concrete_constant(inst14) -// CHECK:STDOUT: inst33: concrete_constant(inst35) -// CHECK:STDOUT: inst34: concrete_constant(inst34) +// CHECK:STDOUT: inst15: concrete_constant(inst15) +// CHECK:STDOUT: inst17: concrete_constant(inst15) +// CHECK:STDOUT: inst23: concrete_constant(inst23) +// CHECK:STDOUT: inst25: concrete_constant(inst15) +// CHECK:STDOUT: inst26: concrete_constant(inst15) +// CHECK:STDOUT: inst27: concrete_constant(inst23) +// CHECK:STDOUT: inst31: concrete_constant(inst15) +// CHECK:STDOUT: inst34: concrete_constant(inst36) // CHECK:STDOUT: inst35: concrete_constant(inst35) // CHECK:STDOUT: inst36: concrete_constant(inst36) -// CHECK:STDOUT: inst41: concrete_constant(inst42) -// CHECK:STDOUT: inst42: concrete_constant(inst42) -// CHECK:STDOUT: inst43: concrete_constant(inst42) -// CHECK:STDOUT: inst45: concrete_constant(inst42) -// CHECK:STDOUT: inst46: concrete_constant(inst42) -// CHECK:STDOUT: inst47: concrete_constant(inst48) -// CHECK:STDOUT: inst48: concrete_constant(inst48) -// CHECK:STDOUT: inst49: concrete_constant(inst48) +// CHECK:STDOUT: inst37: concrete_constant(inst37) +// CHECK:STDOUT: inst42: concrete_constant(inst43) +// CHECK:STDOUT: inst43: concrete_constant(inst43) +// CHECK:STDOUT: inst44: concrete_constant(inst43) +// CHECK:STDOUT: inst46: concrete_constant(inst43) +// CHECK:STDOUT: inst47: concrete_constant(inst43) +// CHECK:STDOUT: inst48: concrete_constant(inst49) +// CHECK:STDOUT: inst49: concrete_constant(inst49) +// CHECK:STDOUT: inst50: concrete_constant(inst49) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst33 +// CHECK:STDOUT: 0: inst34 // CHECK:STDOUT: import_refs: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: -// CHECK:STDOUT: 0: inst15 -// CHECK:STDOUT: 1: inst16 +// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 1: inst17 // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst19 +// CHECK:STDOUT: 0: inst20 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst20 -// CHECK:STDOUT: 1: inst21 +// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 1: inst22 // CHECK:STDOUT: inst_block7: -// CHECK:STDOUT: 0: inst29 -// CHECK:STDOUT: 1: inst31 +// CHECK:STDOUT: 0: inst30 +// CHECK:STDOUT: 1: inst32 // CHECK:STDOUT: inst_block8: -// CHECK:STDOUT: 0: inst18 -// CHECK:STDOUT: 1: inst19 -// CHECK:STDOUT: 2: inst27 -// CHECK:STDOUT: 3: inst28 +// CHECK:STDOUT: 0: inst19 +// CHECK:STDOUT: 1: inst20 +// CHECK:STDOUT: 2: inst28 +// CHECK:STDOUT: 3: inst29 // CHECK:STDOUT: inst_block9: -// CHECK:STDOUT: 0: inst20 -// CHECK:STDOUT: 1: inst21 -// CHECK:STDOUT: 2: inst23 -// CHECK:STDOUT: 3: inst24 -// CHECK:STDOUT: 4: inst25 -// CHECK:STDOUT: 5: inst26 -// CHECK:STDOUT: 6: inst29 -// CHECK:STDOUT: 7: inst30 -// CHECK:STDOUT: 8: inst17 -// CHECK:STDOUT: 9: inst31 -// CHECK:STDOUT: 10: inst32 +// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 1: inst22 +// CHECK:STDOUT: 2: inst24 +// CHECK:STDOUT: 3: inst25 +// CHECK:STDOUT: 4: inst26 +// CHECK:STDOUT: 5: inst27 +// CHECK:STDOUT: 6: inst30 +// CHECK:STDOUT: 7: inst31 +// CHECK:STDOUT: 8: inst18 +// CHECK:STDOUT: 9: inst32 +// CHECK:STDOUT: 10: inst33 // CHECK:STDOUT: inst_block10: -// CHECK:STDOUT: 0: inst37 -// CHECK:STDOUT: 1: inst38 -// CHECK:STDOUT: 2: inst39 -// CHECK:STDOUT: 3: inst40 -// CHECK:STDOUT: 4: inst41 -// CHECK:STDOUT: 5: inst43 -// CHECK:STDOUT: 6: inst44 -// CHECK:STDOUT: 7: inst45 -// CHECK:STDOUT: 8: inst46 -// CHECK:STDOUT: 9: inst47 -// CHECK:STDOUT: 10: inst49 -// CHECK:STDOUT: 11: inst50 +// CHECK:STDOUT: 0: inst38 +// CHECK:STDOUT: 1: inst39 +// CHECK:STDOUT: 2: inst40 +// CHECK:STDOUT: 3: inst41 +// CHECK:STDOUT: 4: inst42 +// CHECK:STDOUT: 5: inst44 +// CHECK:STDOUT: 6: inst45 +// CHECK:STDOUT: 7: inst46 +// CHECK:STDOUT: 8: inst47 +// CHECK:STDOUT: 9: inst48 +// CHECK:STDOUT: 10: inst50 +// CHECK:STDOUT: 11: inst51 // CHECK:STDOUT: inst_block11: -// CHECK:STDOUT: 0: inst37 -// CHECK:STDOUT: 1: inst38 +// CHECK:STDOUT: 0: inst38 +// CHECK:STDOUT: 1: inst39 // CHECK:STDOUT: inst_block12: {} // CHECK:STDOUT: inst_block13: -// CHECK:STDOUT: 0: inst43 -// CHECK:STDOUT: 1: inst46 +// CHECK:STDOUT: 0: inst44 +// CHECK:STDOUT: 1: inst47 // CHECK:STDOUT: inst_block14: -// CHECK:STDOUT: 0: inst42 -// CHECK:STDOUT: 1: inst42 +// CHECK:STDOUT: 0: inst43 +// CHECK:STDOUT: 1: inst43 // CHECK:STDOUT: inst_block15: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst33 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst34 // CHECK:STDOUT: ... // CHECK:STDOUT: // CHECK:STDOUT: --- raw_and_textual_ir.carbon diff --git a/toolchain/driver/testdata/compile/raw_ir.carbon b/toolchain/driver/testdata/compile/raw_ir.carbon index de6b717a2e01..bb31cd162929 100644 --- a/toolchain/driver/testdata/compile/raw_ir.carbon +++ b/toolchain/driver/testdata/compile/raw_ir.carbon @@ -23,15 +23,15 @@ fn Foo[T:! type](n: T) -> (T, ()) { // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst13, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst35}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst36}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name1: {name: name2, parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: inst31, body: [inst_block16]} +// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: inst32, body: [inst_block16]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: -// CHECK:STDOUT: generic0: {decl: inst35, bindings: inst_block12} +// CHECK:STDOUT: generic0: {decl: inst36, bindings: inst_block12} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific0: {generic: generic0, args: inst_block13} // CHECK:STDOUT: struct_type_fields: @@ -43,10 +43,10 @@ fn Foo[T:! type](n: T) -> (T, ()) { // 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(inst39)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst23)} -// CHECK:STDOUT: 'type(inst23)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst23)} +// CHECK:STDOUT: 'type(inst40)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst24)} +// CHECK:STDOUT: 'type(inst24)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst24)} // CHECK:STDOUT: 'type(symbolic_constant0)': // CHECK:STDOUT: value_repr: {kind: copy, type: type(symbolic_constant0)} // CHECK:STDOUT: 'type(symbolic_constant2)': @@ -63,177 +63,177 @@ fn Foo[T:! type](n: T) -> (T, ()) { // CHECK:STDOUT: type_block0: {} // CHECK:STDOUT: type_block1: // CHECK:STDOUT: 0: type(TypeType) -// CHECK:STDOUT: 1: type(inst23) +// CHECK:STDOUT: 1: type(inst24) // CHECK:STDOUT: type_block2: // CHECK:STDOUT: 0: type(symbolic_constant0) -// CHECK:STDOUT: 1: type(inst23) +// CHECK:STDOUT: 1: type(inst24) // CHECK:STDOUT: type_block3: // CHECK:STDOUT: 0: type(symbolic_constant3) -// CHECK:STDOUT: 1: type(inst23) +// CHECK:STDOUT: 1: type(inst24) // CHECK:STDOUT: insts: -// CHECK:STDOUT: inst13: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst14: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} // CHECK:STDOUT: inst15: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst16: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)} +// CHECK:STDOUT: inst16: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(TypeType)} // CHECK:STDOUT: inst17: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: NameRef, arg0: name1, arg1: inst14, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: BindName, arg0: entity_name1, arg1: inst32, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst20: {kind: BindingPattern, arg0: entity_name1, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst21: {kind: ValueParamPattern, arg0: inst20, arg1: call_param0, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst22: {kind: NameRef, arg0: name1, arg1: inst14, type: type(TypeType)} -// CHECK:STDOUT: inst23: {kind: TupleType, arg0: type_block0, type: type(TypeType)} -// CHECK:STDOUT: inst24: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst25: {kind: TupleType, arg0: type_block1, type: type(TypeType)} -// CHECK:STDOUT: inst26: {kind: TupleLiteral, arg0: inst_block8, type: type(inst25)} -// CHECK:STDOUT: inst27: {kind: Converted, arg0: inst24, arg1: inst23, type: type(TypeType)} -// CHECK:STDOUT: inst28: {kind: TupleType, arg0: type_block2, type: type(TypeType)} -// CHECK:STDOUT: inst29: {kind: Converted, arg0: inst26, arg1: inst28, type: type(TypeType)} -// CHECK:STDOUT: inst30: {kind: ReturnSlotPattern, arg0: inst26, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst31: {kind: OutParamPattern, arg0: inst30, arg1: call_param1, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst32: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst33: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant5)} -// CHECK:STDOUT: inst34: {kind: ReturnSlot, arg0: inst26, arg1: inst33, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst35: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(inst39)} -// CHECK:STDOUT: inst36: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst37: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)} -// CHECK:STDOUT: inst38: {kind: TupleType, arg0: type_block3, type: type(TypeType)} -// CHECK:STDOUT: inst39: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst40: {kind: StructValue, arg0: inst_block_empty, type: type(inst39)} -// CHECK:STDOUT: inst41: {kind: PointerType, arg0: inst28, type: type(TypeType)} -// CHECK:STDOUT: inst42: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst18: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)} +// CHECK:STDOUT: inst19: {kind: NameRef, arg0: name1, arg1: inst15, type: type(TypeType)} +// CHECK:STDOUT: inst20: {kind: BindName, arg0: entity_name1, arg1: inst33, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst21: {kind: BindingPattern, arg0: entity_name1, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst22: {kind: ValueParamPattern, arg0: inst21, arg1: call_param0, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst23: {kind: NameRef, arg0: name1, arg1: inst15, type: type(TypeType)} +// CHECK:STDOUT: inst24: {kind: TupleType, arg0: type_block0, type: type(TypeType)} +// CHECK:STDOUT: inst25: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst26: {kind: TupleType, arg0: type_block1, type: type(TypeType)} +// CHECK:STDOUT: inst27: {kind: TupleLiteral, arg0: inst_block8, type: type(inst26)} +// CHECK:STDOUT: inst28: {kind: Converted, arg0: inst25, arg1: inst24, type: type(TypeType)} +// CHECK:STDOUT: inst29: {kind: TupleType, arg0: type_block2, type: type(TypeType)} +// CHECK:STDOUT: inst30: {kind: Converted, arg0: inst27, arg1: inst29, type: type(TypeType)} +// CHECK:STDOUT: inst31: {kind: ReturnSlotPattern, arg0: inst27, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst32: {kind: OutParamPattern, arg0: inst31, arg1: call_param1, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst33: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst34: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant5)} +// CHECK:STDOUT: inst35: {kind: ReturnSlot, arg0: inst27, arg1: inst34, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst36: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(inst40)} +// CHECK:STDOUT: inst37: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst38: {kind: SymbolicBindingPattern, arg0: entity_name0, type: type(TypeType)} +// CHECK:STDOUT: inst39: {kind: TupleType, arg0: type_block3, type: type(TypeType)} +// CHECK:STDOUT: inst40: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst41: {kind: StructValue, arg0: inst_block_empty, type: type(inst40)} +// CHECK:STDOUT: inst42: {kind: PointerType, arg0: inst29, type: type(TypeType)} // CHECK:STDOUT: inst43: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst44: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst45: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst46: {kind: NameRef, arg0: name2, arg1: inst19, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst47: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst48: {kind: TupleLiteral, arg0: inst_block17, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst49: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst50: {kind: TupleAccess, arg0: inst34, arg1: element0, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst51: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst52: {kind: InitializeFrom, arg0: inst46, arg1: inst50, type: type(symbolic_constant3)} -// CHECK:STDOUT: inst53: {kind: TupleAccess, arg0: inst34, arg1: element1, type: type(inst23)} -// CHECK:STDOUT: inst54: {kind: TupleInit, arg0: inst_block_empty, arg1: inst53, type: type(inst23)} -// CHECK:STDOUT: inst55: {kind: TupleValue, arg0: inst_block_empty, type: type(inst23)} -// CHECK:STDOUT: inst56: {kind: Converted, arg0: inst47, arg1: inst54, type: type(inst23)} -// CHECK:STDOUT: inst57: {kind: TupleInit, arg0: inst_block18, arg1: inst34, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst58: {kind: Converted, arg0: inst48, arg1: inst57, type: type(symbolic_constant5)} -// CHECK:STDOUT: inst59: {kind: ReturnExpr, arg0: inst58, arg1: inst34} -// CHECK:STDOUT: inst60: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))} -// CHECK:STDOUT: inst61: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst44: {kind: RequireCompleteType, arg0: type(symbolic_constant2), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst45: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst46: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst47: {kind: NameRef, arg0: name2, arg1: inst20, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst48: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst49: {kind: TupleLiteral, arg0: inst_block17, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst50: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst51: {kind: TupleAccess, arg0: inst35, arg1: element0, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst52: {kind: RequireCompleteType, arg0: type(symbolic_constant0), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst53: {kind: InitializeFrom, arg0: inst47, arg1: inst51, type: type(symbolic_constant3)} +// CHECK:STDOUT: inst54: {kind: TupleAccess, arg0: inst35, arg1: element1, type: type(inst24)} +// CHECK:STDOUT: inst55: {kind: TupleInit, arg0: inst_block_empty, arg1: inst54, type: type(inst24)} +// CHECK:STDOUT: inst56: {kind: TupleValue, arg0: inst_block_empty, type: type(inst24)} +// CHECK:STDOUT: inst57: {kind: Converted, arg0: inst48, arg1: inst55, type: type(inst24)} +// CHECK:STDOUT: inst58: {kind: TupleInit, arg0: inst_block18, arg1: inst35, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst59: {kind: Converted, arg0: inst49, arg1: inst58, type: type(symbolic_constant5)} +// CHECK:STDOUT: inst60: {kind: ReturnExpr, arg0: inst59, arg1: inst35} +// CHECK:STDOUT: inst61: {kind: RequireCompleteType, arg0: type(symbolic_constant5), type: type(inst(WitnessType))} +// CHECK:STDOUT: inst62: {kind: RequireCompleteType, arg0: type(symbolic_constant3), type: type(inst(WitnessType))} // CHECK:STDOUT: constant_values: -// CHECK:STDOUT: inst13: concrete_constant(inst13) -// CHECK:STDOUT: inst14: symbolic_constant3 -// CHECK:STDOUT: inst15: symbolic_constant0 -// CHECK:STDOUT: inst16: symbolic_constant4 -// CHECK:STDOUT: inst17: symbolic_constant1 -// CHECK:STDOUT: inst18: symbolic_constant3 -// CHECK:STDOUT: inst22: symbolic_constant3 -// CHECK:STDOUT: inst23: concrete_constant(inst23) -// CHECK:STDOUT: inst25: concrete_constant(inst25) -// CHECK:STDOUT: inst27: concrete_constant(inst23) -// CHECK:STDOUT: inst28: symbolic_constant2 -// CHECK:STDOUT: inst29: symbolic_constant5 -// CHECK:STDOUT: inst35: concrete_constant(inst40) -// CHECK:STDOUT: inst36: symbolic_constant3 -// CHECK:STDOUT: inst37: symbolic_constant4 -// CHECK:STDOUT: inst38: symbolic_constant5 -// CHECK:STDOUT: inst39: concrete_constant(inst39) +// CHECK:STDOUT: inst14: concrete_constant(inst14) +// CHECK:STDOUT: inst15: symbolic_constant3 +// CHECK:STDOUT: inst16: symbolic_constant0 +// CHECK:STDOUT: inst17: symbolic_constant4 +// CHECK:STDOUT: inst18: symbolic_constant1 +// CHECK:STDOUT: inst19: symbolic_constant3 +// CHECK:STDOUT: inst23: symbolic_constant3 +// CHECK:STDOUT: inst24: concrete_constant(inst24) +// CHECK:STDOUT: inst26: concrete_constant(inst26) +// CHECK:STDOUT: inst28: concrete_constant(inst24) +// CHECK:STDOUT: inst29: symbolic_constant2 +// CHECK:STDOUT: inst30: symbolic_constant5 +// CHECK:STDOUT: inst36: concrete_constant(inst41) +// CHECK:STDOUT: inst37: symbolic_constant3 +// CHECK:STDOUT: inst38: symbolic_constant4 +// CHECK:STDOUT: inst39: symbolic_constant5 // CHECK:STDOUT: inst40: concrete_constant(inst40) -// CHECK:STDOUT: inst41: symbolic_constant6 -// CHECK:STDOUT: inst42: symbolic_constant9 -// CHECK:STDOUT: inst43: symbolic_constant7 -// CHECK:STDOUT: inst44: symbolic_constant10 -// CHECK:STDOUT: inst45: symbolic_constant8 -// CHECK:STDOUT: inst49: symbolic_constant9 -// CHECK:STDOUT: inst51: symbolic_constant10 -// CHECK:STDOUT: inst54: concrete_constant(inst55) -// CHECK:STDOUT: inst55: concrete_constant(inst55) -// CHECK:STDOUT: inst56: concrete_constant(inst55) -// CHECK:STDOUT: inst60: symbolic_constant9 -// CHECK:STDOUT: inst61: symbolic_constant10 +// CHECK:STDOUT: inst41: concrete_constant(inst41) +// CHECK:STDOUT: inst42: symbolic_constant6 +// CHECK:STDOUT: inst43: symbolic_constant9 +// CHECK:STDOUT: inst44: symbolic_constant7 +// CHECK:STDOUT: inst45: symbolic_constant10 +// CHECK:STDOUT: inst46: symbolic_constant8 +// CHECK:STDOUT: inst50: symbolic_constant9 +// CHECK:STDOUT: inst52: symbolic_constant10 +// CHECK:STDOUT: inst55: concrete_constant(inst56) +// CHECK:STDOUT: inst56: concrete_constant(inst56) +// CHECK:STDOUT: inst57: concrete_constant(inst56) +// CHECK:STDOUT: inst61: symbolic_constant9 +// CHECK:STDOUT: inst62: symbolic_constant10 // CHECK:STDOUT: symbolic_constants: -// CHECK:STDOUT: symbolic_constant0: {inst: inst15, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant1: {inst: inst17, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant2: {inst: inst28, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant3: {inst: inst15, generic: generic0, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant4: {inst: inst17, generic: generic0, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant5: {inst: inst28, generic: generic0, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6: {inst: inst41, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant7: {inst: inst43, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant8: {inst: inst45, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant9: {inst: inst43, generic: generic0, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant10: {inst: inst45, generic: generic0, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant0: {inst: inst16, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant1: {inst: inst18, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant2: {inst: inst29, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant3: {inst: inst16, generic: generic0, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant4: {inst: inst18, generic: generic0, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant5: {inst: inst29, generic: generic0, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6: {inst: inst42, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant7: {inst: inst44, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant8: {inst: inst46, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant9: {inst: inst44, generic: generic0, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant10: {inst: inst46, generic: generic0, index: generic_inst_in_def1, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst35 +// CHECK:STDOUT: 0: inst36 // CHECK:STDOUT: import_refs: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 0: inst17 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst18 +// CHECK:STDOUT: 0: inst19 // CHECK:STDOUT: inst_block7: -// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 0: inst22 // CHECK:STDOUT: inst_block8: -// CHECK:STDOUT: 0: inst22 -// CHECK:STDOUT: 1: inst24 +// CHECK:STDOUT: 0: inst23 +// CHECK:STDOUT: 1: inst25 // CHECK:STDOUT: inst_block9: -// CHECK:STDOUT: 0: inst32 -// CHECK:STDOUT: 1: inst33 +// CHECK:STDOUT: 0: inst33 +// CHECK:STDOUT: 1: inst34 // CHECK:STDOUT: inst_block10: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst20 -// CHECK:STDOUT: 2: inst21 -// CHECK:STDOUT: 3: inst30 -// CHECK:STDOUT: 4: inst31 +// CHECK:STDOUT: 0: inst17 +// CHECK:STDOUT: 1: inst21 +// CHECK:STDOUT: 2: inst22 +// CHECK:STDOUT: 3: inst31 +// CHECK:STDOUT: 4: inst32 // CHECK:STDOUT: inst_block11: -// CHECK:STDOUT: 0: inst22 -// CHECK:STDOUT: 1: inst24 -// CHECK:STDOUT: 2: inst26 -// CHECK:STDOUT: 3: inst27 -// CHECK:STDOUT: 4: inst29 -// CHECK:STDOUT: 5: inst14 -// CHECK:STDOUT: 6: inst32 -// CHECK:STDOUT: 7: inst18 -// CHECK:STDOUT: 8: inst19 -// CHECK:STDOUT: 9: inst33 -// CHECK:STDOUT: 10: inst34 +// CHECK:STDOUT: 0: inst23 +// CHECK:STDOUT: 1: inst25 +// CHECK:STDOUT: 2: inst27 +// CHECK:STDOUT: 3: inst28 +// CHECK:STDOUT: 4: inst30 +// CHECK:STDOUT: 5: inst15 +// CHECK:STDOUT: 6: inst33 +// CHECK:STDOUT: 7: inst19 +// CHECK:STDOUT: 8: inst20 +// CHECK:STDOUT: 9: inst34 +// CHECK:STDOUT: 10: inst35 // CHECK:STDOUT: inst_block12: -// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 0: inst15 // CHECK:STDOUT: inst_block13: -// CHECK:STDOUT: 0: inst15 +// CHECK:STDOUT: 0: inst16 // CHECK:STDOUT: inst_block14: -// CHECK:STDOUT: 0: inst36 -// CHECK:STDOUT: 1: inst37 -// CHECK:STDOUT: 2: inst38 +// CHECK:STDOUT: 0: inst37 +// CHECK:STDOUT: 1: inst38 +// CHECK:STDOUT: 2: inst39 // CHECK:STDOUT: inst_block15: -// CHECK:STDOUT: 0: inst15 -// CHECK:STDOUT: 1: inst17 -// CHECK:STDOUT: 2: inst28 +// CHECK:STDOUT: 0: inst16 +// CHECK:STDOUT: 1: inst18 +// CHECK:STDOUT: 2: inst29 // CHECK:STDOUT: inst_block16: -// CHECK:STDOUT: 0: inst46 -// CHECK:STDOUT: 1: inst47 -// CHECK:STDOUT: 2: inst48 -// CHECK:STDOUT: 3: inst50 -// CHECK:STDOUT: 4: inst52 -// CHECK:STDOUT: 5: inst53 -// CHECK:STDOUT: 6: inst54 -// CHECK:STDOUT: 7: inst56 -// CHECK:STDOUT: 8: inst57 -// CHECK:STDOUT: 9: inst58 -// CHECK:STDOUT: 10: inst59 +// CHECK:STDOUT: 0: inst47 +// CHECK:STDOUT: 1: inst48 +// CHECK:STDOUT: 2: inst49 +// CHECK:STDOUT: 3: inst51 +// CHECK:STDOUT: 4: inst53 +// CHECK:STDOUT: 5: inst54 +// CHECK:STDOUT: 6: inst55 +// CHECK:STDOUT: 7: inst57 +// CHECK:STDOUT: 8: inst58 +// CHECK:STDOUT: 9: inst59 +// CHECK:STDOUT: 10: inst60 // CHECK:STDOUT: inst_block17: -// CHECK:STDOUT: 0: inst46 -// CHECK:STDOUT: 1: inst47 +// CHECK:STDOUT: 0: inst47 +// CHECK:STDOUT: 1: inst48 // CHECK:STDOUT: inst_block18: -// CHECK:STDOUT: 0: inst52 -// CHECK:STDOUT: 1: inst56 +// CHECK:STDOUT: 0: inst53 +// CHECK:STDOUT: 1: inst57 // CHECK:STDOUT: inst_block19: -// CHECK:STDOUT: 0: inst60 -// CHECK:STDOUT: 1: inst61 +// CHECK:STDOUT: 0: inst61 +// CHECK:STDOUT: 1: inst62 // CHECK:STDOUT: inst_block20: -// CHECK:STDOUT: 0: inst13 -// CHECK:STDOUT: 1: inst35 +// CHECK:STDOUT: 0: inst14 +// CHECK:STDOUT: 1: inst36 // CHECK:STDOUT: ... diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index 331d50b94f01..aa93acf97481 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -565,6 +565,12 @@ static auto BuildTypeForInst(FileContext& context, SemIR::ConstType inst) context.sem_ir().types().GetTypeIdForTypeInstId(inst.inner_id)); } +static auto BuildTypeForInst(FileContext& context, + SemIR::ImplWitnessAssociatedConstant inst) + -> llvm::Type* { + return context.GetType(inst.type_id); +} + static auto BuildTypeForInst(FileContext& /*context*/, SemIR::ErrorInst /*inst*/) -> llvm::Type* { // This is a complete type but uses of it should never be lowered. diff --git a/toolchain/sem_ir/expr_info.cpp b/toolchain/sem_ir/expr_info.cpp index ba90bd8975c7..e535b01caf56 100644 --- a/toolchain/sem_ir/expr_info.cpp +++ b/toolchain/sem_ir/expr_info.cpp @@ -78,6 +78,11 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { continue; } + case CARBON_KIND(ImplWitnessAssociatedConstant inst): { + inst_id = inst.inst_id; + continue; + } + case CARBON_KIND(SpecificConstant inst): { inst_id = inst.inst_id; continue; @@ -116,6 +121,7 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { case LookupImplWitness::Kind: case ImplWitness::Kind: case ImplWitnessAccess::Kind: + case ImplWitnessTablePlaceholder::Kind: case ImportCppDecl::Kind: case ImportDecl::Kind: case InstType::Kind: diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index daa0ef2bc9da..65305f09ff59 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -74,6 +74,8 @@ CARBON_SEM_IR_INST_KIND(ImplDecl) CARBON_SEM_IR_INST_KIND(LookupImplWitness) CARBON_SEM_IR_INST_KIND(ImplWitness) CARBON_SEM_IR_INST_KIND(ImplWitnessAccess) +CARBON_SEM_IR_INST_KIND(ImplWitnessAssociatedConstant) +CARBON_SEM_IR_INST_KIND(ImplWitnessTablePlaceholder) CARBON_SEM_IR_INST_KIND(ImportCppDecl) CARBON_SEM_IR_INST_KIND(ImportDecl) CARBON_SEM_IR_INST_KIND(ImportRefLoaded) diff --git a/toolchain/sem_ir/inst_namer.cpp b/toolchain/sem_ir/inst_namer.cpp index aa82ec9c2f34..f610bc732b20 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -701,6 +701,10 @@ auto InstNamer::CollectNamesInBlock(ScopeId top_scope_id, add_inst_name(out.TakeStr()); continue; } + case ImplWitnessAssociatedConstant::Kind: { + add_inst_name("impl_witness_assoc_constant"); + continue; + } case ImportCppDecl::Kind: { add_inst_name("Cpp.import_cpp"); continue; diff --git a/toolchain/sem_ir/singleton_insts.h b/toolchain/sem_ir/singleton_insts.h index 6726c6459fb4..53650673170b 100644 --- a/toolchain/sem_ir/singleton_insts.h +++ b/toolchain/sem_ir/singleton_insts.h @@ -13,12 +13,19 @@ 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::ErrorInst, InstKind::InstType, - InstKind::IntLiteralType, InstKind::LegacyFloatType, - InstKind::NamespaceType, InstKind::SpecificFunctionType, - InstKind::StringType, InstKind::VtableType, + InstKind::TypeType, + InstKind::AutoType, + InstKind::BoolType, + InstKind::BoundMethodType, + InstKind::ErrorInst, + InstKind::ImplWitnessTablePlaceholder, + InstKind::InstType, + InstKind::IntLiteralType, + InstKind::LegacyFloatType, + InstKind::NamespaceType, + InstKind::SpecificFunctionType, + InstKind::StringType, + InstKind::VtableType, InstKind::WitnessType, }; diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 700c346c11a5..9402fa0d3d33 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -688,6 +688,7 @@ struct FacetAccessType { .is_type = InstIsType::Always, .constant_kind = InstConstantKind::SymbolicOnly}); + // Always the builtin type TypeType. TypeId type_id; // An instruction that evaluates to a `FacetValue`. InstId facet_value_inst_id; @@ -900,6 +901,18 @@ struct ImplWitness { // Always the type of the builtin `WitnessType` singleton instruction. TypeId type_id; + // The witness table with an instruction for each associated constant and + // function in the impl declaration (and definition, if seen). The specific_id + // should be applied to those instructions. Instructions will be + // `ImplWitnessTablePlaceholder` until a value is seen for them. + // + // TODO: To avoid importing the table with every `ImplWitness`, split this + // table out to a separate `ImplWitnessTable` instruction. It can still remain + // as an AbsoluteInstBlockId there. The `ImplWitnessTable's constant_kind + // should be `Unique` to avoid it being evaluated or substituted. The + // `ImplWitnessTable` can also hold a reference back to the impl that the + // witness is for via an `ImplId` which allows diagnostics to show the impl + // from a given witness or witness access. AbsoluteInstBlockId elements_id; SpecificId specific_id; }; @@ -919,6 +932,40 @@ struct ImplWitnessAccess { ElementIndex index; }; +// An instruction that just points to an associated constant, which exists to +// live inside the generic for an `impl` and be rewritten in the generic eval +// block, unlike the instruction which it points to. This allows a symbolic +// constant value of this instruction to be be substituted to be associated with +// the generic. +struct ImplWitnessAssociatedConstant { + static constexpr auto Kind = + InstKind::ImplWitnessAssociatedConstant.Define( + {.ir_name = "impl_witness_assoc_constant", + .is_type = InstIsType::Maybe, + // TODO: For dynamic dispatch, we might want to lower witness tables + // as constants. + .is_lowered = false}); + + // The type of the `inst_id`. + TypeId type_id; + // The instruction of the associated constant. + InstId inst_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( + {.ir_name = "impl_witness_table_placeholder", + .constant_kind = InstConstantKind::Unique, + .is_lowered = false}); + static constexpr auto SingletonInstId = MakeSingletonInstId(); + + TypeId type_id; +}; + // An `import Cpp` declaration. struct ImportCppDecl { static constexpr auto Kind = @@ -1836,6 +1883,8 @@ struct WhereExpr { // The type of `ImplWitness` and `ImplSymbolicType` instructions. The latter // will evaluate at some point during specific computation into the former, and // their types should not change in the process. +// +// Also the type of `RequireCompleteType` instructions. struct WitnessType { static constexpr auto Kind = InstKind::WitnessType.Define( {.ir_name = "",