diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 449be862220ac..a08f1b67c88f5 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -147,18 +147,6 @@ namespace { // Therefore code that accepts an ImportContext is unable to enqueue new work. class ImportContext { public: - // A generic that we have partially imported. - struct PendingGeneric { - SemIR::GenericId import_id; - SemIR::GenericId local_id; - }; - - // A specific that we have partially imported. - struct PendingSpecific { - SemIR::SpecificId import_id; - SemIR::SpecificId local_id; - }; - // `context` must not be null. explicit ImportContext(Context* context, SemIR::ImportIRId import_ir_id) : context_(context), @@ -315,27 +303,10 @@ class ImportContext { } auto local_types() -> SemIR::TypeStore& { return local_ir().types(); } - // Add a specific that has been partially imported but needs to be finished. - auto AddPendingSpecific(PendingSpecific pending) -> void { - pending_specifics_.push_back(pending); - } - - protected: - auto pending_specifics() -> llvm::SmallVector& { - return pending_specifics_; - } - private: Context* context_; SemIR::ImportIRId import_ir_id_; const SemIR::File& import_ir_; - - // TODO: The following members don't belong here. This pending work mechanism - // can probably be removed entirely if we stop importing generic eval blocks - // and instead evaluate them directly in the imported IR. - - // Specifics that we have partially imported but not yet finished importing. - llvm::SmallVector pending_specifics_; }; // Resolves an instruction from an imported IR into a constant referring to the @@ -420,31 +391,24 @@ class ImportRefResolver : public ImportContext { // Iteratively resolves an imported instruction's inner references until a // constant ID referencing the current IR is produced. See the class comment // for more details. - auto ResolveOneInst(SemIR::InstId inst_id) -> SemIR::ConstantId; - - // Performs resolution for one instruction and then performs all work we - // deferred. - auto Resolve(SemIR::InstId inst_id) -> SemIR::ConstantId { - auto const_id = ResolveOneInst(inst_id); - PerformPendingWork(); - return const_id; - } + auto Resolve(SemIR::InstId inst_id) -> SemIR::ConstantId; // Wraps constant evaluation with logic to handle constants. - auto ResolveConstant(SemIR::ConstantId import_const_id) -> SemIR::ConstantId { - return Resolve(GetInstWithConstantValue(import_ir(), import_const_id)); - } + auto ResolveConstant(SemIR::ConstantId import_const_id) -> SemIR::ConstantId; // Wraps constant evaluation with logic to handle types. auto ResolveType(SemIR::TypeId import_type_id) -> SemIR::TypeId; // Returns true if new unresolved constants were found as part of this // `Resolve` step. - auto HasNewWork() -> bool { - CARBON_CHECK(initial_work_ <= work_stack_.size(), - "Work shouldn't decrease"); - return initial_work_ < work_stack_.size(); - } + auto HasNewWork() -> bool; + + // Pushes a specific onto the work stack. This will only process when the + // current instruction is done, and does not count towards `HasNewWork`. We + // add specifics this way because some instructions (e.g. `FacetTypeInfo`) can + // add multiple specifics. + auto PushSpecific(SemIR::SpecificId import_id, SemIR::SpecificId local_id) + -> void; // Returns the ConstantId for an InstId. Adds unresolved constants to // work_stack_. @@ -466,6 +430,12 @@ class ImportRefResolver : public ImportContext { SemIR::GenericId local_id; }; + // A specific to import. + struct SpecificWork { + SemIR::SpecificId import_id; + SemIR::SpecificId local_id; + }; + // The constant found by FindResolvedConstId. struct ResolvedConstId { // The constant for the instruction. `None` if not yet resolved. @@ -488,9 +458,8 @@ class ImportRefResolver : public ImportContext { llvm::ArrayRef indirect_insts, SemIR::ConstantId const_id) -> void; - auto PerformPendingWork() -> void; - - llvm::SmallVector> work_stack_; + llvm::SmallVector> + work_stack_; // The size of work_stack_ at the start of resolving the current instruction. size_t initial_work_ = 0; }; @@ -959,14 +928,24 @@ static auto GetLocalSpecificData(ImportRefResolver& resolver, }; } +// True for an already-imported specific. +static auto IsSpecificImported(const SemIR::Specific& import_specific, + const SemIR::Specific& local_specific) -> bool { + return local_specific.decl_block_id.has_value() && + (local_specific.definition_block_id.has_value() || + !import_specific.definition_block_id.has_value()); +} + // Gets a local specific whose data was already imported by -// GetLocalSpecificData. Does not add any new work. +// GetLocalSpecificData. This can add work through `PushSpecific`, but callers +// shouldn't need to consider that because specifics are processed after the +// current instruction. // // `local_generic_id` is provided when this is used for a generic's `self` // specific, where `GetLocalGenericId` won't work because `generic_const_id` can // be `TypeType`. static auto GetOrAddLocalSpecific( - ImportContext& context, SemIR::SpecificId import_specific_id, + ImportRefResolver& resolver, SemIR::SpecificId import_specific_id, const SpecificData& data, SemIR::GenericId local_generic_id = SemIR::GenericId::None) -> SemIR::SpecificId { @@ -976,24 +955,21 @@ static auto GetOrAddLocalSpecific( // Form a corresponding local specific ID. const auto& import_specific = - context.import_specifics().Get(import_specific_id); + resolver.import_specifics().Get(import_specific_id); if (!local_generic_id.has_value()) { - local_generic_id = GetLocalGenericId(context, data.generic_const_id); + local_generic_id = GetLocalGenericId(resolver, data.generic_const_id); } - auto args_id = - GetLocalCanonicalInstBlockId(context, import_specific.args_id, data.args); + auto args_id = GetLocalCanonicalInstBlockId(resolver, import_specific.args_id, + data.args); // Get the specific. auto local_specific_id = - context.local_specifics().GetOrAdd(local_generic_id, args_id); + resolver.local_specifics().GetOrAdd(local_generic_id, args_id); - // Fill in the remaining information in FinishPendingSpecific, if necessary. - auto& local_specific = context.local_specifics().Get(local_specific_id); - if (!local_specific.decl_block_id.has_value() || - (import_specific.definition_block_id.has_value() && - !local_specific.definition_block_id.has_value())) { - context.AddPendingSpecific( - {.import_id = import_specific_id, .local_id = local_specific_id}); + if (!IsSpecificImported(import_specific, + resolver.local_specifics().Get(local_specific_id))) { + // Enqueue the specific to fill in remaining fields. + resolver.PushSpecific(import_specific_id, local_specific_id); } return local_specific_id; } @@ -1034,6 +1010,40 @@ static auto TryFinishGeneric(ImportRefResolver& resolver, return true; } +// Given a specific that's gone through the initial setup with `SpecificData`, +// finish the import. +static auto TryFinishSpecific(ImportRefResolver& resolver, + SemIR::SpecificId import_specific_id, + SemIR::SpecificId local_specific_id) -> bool { + const auto& import_specific = + resolver.import_specifics().Get(import_specific_id); + auto& local_specific = resolver.local_specifics().Get(local_specific_id); + + if (IsSpecificImported(import_specific, local_specific)) { + return true; + } + + llvm::SmallVector decl_block; + if (!local_specific.decl_block_id.has_value()) { + decl_block = + GetLocalInstBlockContents(resolver, import_specific.decl_block_id); + } + auto definition_block = + GetLocalInstBlockContents(resolver, import_specific.definition_block_id); + + if (resolver.HasNewWork()) { + return false; + } + + if (!local_specific.decl_block_id.has_value()) { + local_specific.decl_block_id = GetLocalCanonicalInstBlockId( + resolver, import_specific.decl_block_id, decl_block); + } + local_specific.definition_block_id = GetLocalCanonicalInstBlockId( + resolver, import_specific.definition_block_id, definition_block); + return true; +} + namespace { struct SpecificInterfaceData { SemIR::ConstantId interface_const_id; @@ -1057,7 +1067,8 @@ static auto GetLocalSpecificInterfaceData( } static auto GetLocalSpecificInterface( - ImportContext& context, SemIR::SpecificInterface import_specific_interface, + ImportRefResolver& resolver, + SemIR::SpecificInterface import_specific_interface, SpecificInterfaceData interface_data) -> SemIR::SpecificInterface { if (!interface_data.interface_const_id.has_value()) { return SemIR::SpecificInterface::None; @@ -1067,19 +1078,19 @@ static auto GetLocalSpecificInterface( // build a interface type referencing this specialization of the generic // interface. auto interface_const_inst = - context.local_insts().Get(context.local_constant_values().GetInstId( + resolver.local_insts().Get(resolver.local_constant_values().GetInstId( interface_data.interface_const_id)); if (auto facet_type = interface_const_inst.TryAs()) { const SemIR::FacetTypeInfo& new_facet_type_info = - context.local_facet_types().Get(facet_type->facet_type_id); + resolver.local_facet_types().Get(facet_type->facet_type_id); return std::get( *new_facet_type_info.TryAsSingleExtend()); } else { auto generic_interface_type = - context.local_types().GetAs( + resolver.local_types().GetAs( interface_const_inst.type_id()); auto specific_id = - GetOrAddLocalSpecific(context, import_specific_interface.specific_id, + GetOrAddLocalSpecific(resolver, import_specific_interface.specific_id, interface_data.specific_data); return {generic_interface_type.interface_id, specific_id}; } @@ -1109,7 +1120,7 @@ static auto GetLocalSpecificNamedConstraintData( } static auto GetLocalSpecificNamedConstraint( - ImportContext& context, + ImportRefResolver& resolver, SemIR::SpecificNamedConstraint import_specific_constraint, SpecificNamedConstraintData constraint_data) -> SemIR::SpecificNamedConstraint { @@ -1121,19 +1132,19 @@ static auto GetLocalSpecificNamedConstraint( // constraint, build a named constraint type referencing this specialization // of the generic named constraint. auto constraint_const_inst = - context.local_insts().Get(context.local_constant_values().GetInstId( + resolver.local_insts().Get(resolver.local_constant_values().GetInstId( constraint_data.constraint_const_id)); if (auto facet_type = constraint_const_inst.TryAs()) { const SemIR::FacetTypeInfo& new_facet_type_info = - context.local_facet_types().Get(facet_type->facet_type_id); + resolver.local_facet_types().Get(facet_type->facet_type_id); return std::get( *new_facet_type_info.TryAsSingleExtend()); } else { auto generic_constraint_type = - context.local_types().GetAs( + resolver.local_types().GetAs( constraint_const_inst.type_id()); auto specific_id = - GetOrAddLocalSpecific(context, import_specific_constraint.specific_id, + GetOrAddLocalSpecific(resolver, import_specific_constraint.specific_id, constraint_data.specific_data); return {generic_constraint_type.named_constraint_id, specific_id}; } @@ -3887,8 +3898,7 @@ static auto TryResolveInst(ImportRefResolver& resolver, SemIR::InstId inst_id, return result; } -auto ImportRefResolver::ResolveOneInst(SemIR::InstId inst_id) - -> SemIR::ConstantId { +auto ImportRefResolver::Resolve(SemIR::InstId inst_id) -> SemIR::ConstantId { work_stack_.push_back(InstWork{.inst_id = inst_id}); while (!work_stack_.empty()) { auto work_variant = work_stack_.back(); @@ -3941,6 +3951,16 @@ auto ImportRefResolver::ResolveOneInst(SemIR::InstId inst_id) } break; } + case CARBON_KIND(SpecificWork specific_work): { + // Specifics may require 2 steps to finish, similar to step 2 and step 3 + // of instructions. + initial_work_ = work_stack_.size(); + if (TryFinishSpecific(*this, specific_work.import_id, + specific_work.local_id)) { + work_stack_.pop_back(); + } + break; + } } } auto constant_id = @@ -3949,6 +3969,11 @@ auto ImportRefResolver::ResolveOneInst(SemIR::InstId inst_id) return constant_id; } +auto ImportRefResolver::ResolveConstant(SemIR::ConstantId import_const_id) + -> SemIR::ConstantId { + return Resolve(GetInstWithConstantValue(import_ir(), import_const_id)); +} + auto ImportRefResolver::ResolveType(SemIR::TypeId import_type_id) -> SemIR::TypeId { if (!import_type_id.has_value()) { @@ -3969,6 +3994,20 @@ auto ImportRefResolver::ResolveType(SemIR::TypeId import_type_id) } } +auto ImportRefResolver::HasNewWork() -> bool { + CARBON_CHECK(initial_work_ <= work_stack_.size(), "Work shouldn't decrease"); + return initial_work_ < work_stack_.size(); +} + +auto ImportRefResolver::PushSpecific(SemIR::SpecificId import_id, + SemIR::SpecificId local_id) -> void { + // Insert before the current instruction. + work_stack_.insert( + work_stack_.begin() + initial_work_ - 1, + SpecificWork{.import_id = import_id, .local_id = local_id}); + ++initial_work_; +} + auto ImportRefResolver::GetLocalConstantValueOrPush(SemIR::InstId inst_id) -> SemIR::ConstantId { if (!inst_id.has_value()) { @@ -4049,64 +4088,6 @@ auto ImportRefResolver::SetResolvedConstId( SetIndirectConstantValues(local_context(), indirect_insts, const_id); } -// Resolves and returns the local contents for an imported instruction block -// of constant instructions. -static auto ResolveLocalInstBlockContents(ImportRefResolver& resolver, - SemIR::InstBlockId import_block_id) - -> llvm::SmallVector { - auto import_block = resolver.import_inst_blocks().Get(import_block_id); - - llvm::SmallVector inst_ids; - inst_ids.reserve(import_block.size()); - for (auto import_inst_id : import_block) { - inst_ids.push_back(resolver.local_constant_values().GetInstId( - resolver.ResolveOneInst(import_inst_id))); - } - return inst_ids; -} - -// Resolves and returns a local inst block of constant instructions -// corresponding to an imported inst block. -static auto ResolveLocalInstBlock(ImportRefResolver& resolver, - SemIR::InstBlockId import_block_id) - -> SemIR::InstBlockId { - if (!import_block_id.has_value()) { - return SemIR::InstBlockId::None; - } - - auto inst_ids = ResolveLocalInstBlockContents(resolver, import_block_id); - return resolver.local_inst_blocks().Add(inst_ids); -} - -// Fills in the remaining information in a partially-imported specific. -static auto FinishPendingSpecific(ImportRefResolver& resolver, - ImportContext::PendingSpecific pending) - -> void { - const auto& import_specific = - resolver.import_specifics().Get(pending.import_id); - auto& local_specific = resolver.local_specifics().Get(pending.local_id); - - if (!local_specific.decl_block_id.has_value()) { - local_specific.decl_block_id = - ResolveLocalInstBlock(resolver, import_specific.decl_block_id); - } - - if (!local_specific.definition_block_id.has_value() && - import_specific.definition_block_id.has_value()) { - local_specific.definition_block_id = - ResolveLocalInstBlock(resolver, import_specific.definition_block_id); - } -} - -// Perform any work that we deferred until the end of the main Resolve loop. -auto ImportRefResolver::PerformPendingWork() -> void { - // Note that the individual Finish steps can add new pending work, so keep - // going until we have no more work to do. - while (!pending_specifics().empty()) { - FinishPendingSpecific(*this, pending_specifics().pop_back_val()); - } -} - // Returns a list of ImportIRInsts equivalent to the ImportRef currently being // loaded (including the one pointed at directly by the ImportRef), and the // final instruction's type ID. diff --git a/toolchain/check/testdata/array/init_dependent_bound.carbon b/toolchain/check/testdata/array/init_dependent_bound.carbon index c0a32250c2518..4f399061ae6b5 100644 --- a/toolchain/check/testdata/array/init_dependent_bound.carbon +++ b/toolchain/check/testdata/array/init_dependent_bound.carbon @@ -174,10 +174,10 @@ fn H() { G(3); } // CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [concrete] // CHECK:STDOUT: %tuple: %tuple.type = tuple_value (%int_1, %int_2, %int_3.1ba) [concrete] // CHECK:STDOUT: %ImplicitAs.type.7a9: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.2c2: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.cdf: %Int.as.ImplicitAs.impl.Convert.type.2c2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %int_3.822: %i32 = int_value 3 [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.972: = impl_witness imports.%ImplicitAs.impl_witness_table.783, @Int.as.ImplicitAs.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.592: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%int_32) [concrete] diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon index 2bb0664b7a08e..d07db7bd510b9 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -47,30 +47,30 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst4800005E} // CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst48000074} // CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst4800005F} -// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000053} -// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst48000059} -// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst4800005C} -// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst4800004F} -// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst48000051} -// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst48000057} -// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst4800005B} -// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000062} -// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000074} -// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst4800006F} -// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000070} -// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst4800006B} -// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800006D} -// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst4800004F} -// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000066} -// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000067} -// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000068} -// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst4800006C} -// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst4800007C} -// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst48000084} -// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800008B} -// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst4800008F} -// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst48000090} -// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000095} +// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000074} +// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst4800006F} +// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000070} +// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst4800006B} +// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst4800006D} +// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst4800004F} +// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst48000066} +// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000067} +// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000068} +// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst4800006C} +// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst4800007C} +// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst48000084} +// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800008B} +// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst4800008F} +// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000090} +// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000095} +// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000053} +// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst48000059} +// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst4800005C} +// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst4800004F} +// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst48000051} +// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000057} +// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst4800005B} +// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000062} // CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst48000077} // CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000078} // CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst480000AA} @@ -124,98 +124,98 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000173} // CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst4800018D} // CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst48000174} -// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst4800015E} -// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst48000158} -// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst4800016E} -// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000170} -// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst48000156} -// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst4800015B} -// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst48000157} -// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst4800015D} -// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst48000164} -// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst48000167} -// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst4800016B} -// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst4800016F} -// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000177} -// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst4800018D} -// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst48000188} -// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst48000189} -// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst48000184} -// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst48000186} -// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst48000156} -// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst4800015B} -// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst4800017D} -// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst4800017E} -// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst4800017F} -// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst48000180} -// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst48000181} -// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst48000185} -// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst48000196} -// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst4800019E} -// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst480001A2} -// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst480001A4} -// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst480001A5} -// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst480001A8} -// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst480001B4} -// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst480001B9} -// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst480001BD} -// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst480001BE} -// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst480001C3} +// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst4800018D} +// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst48000188} +// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst48000189} +// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000184} +// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst48000186} +// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000156} +// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst4800015B} +// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst4800017D} +// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst4800017E} +// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst4800017F} +// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst48000180} +// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst48000181} +// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000185} +// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst48000196} +// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst4800019E} +// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst480001A2} +// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst480001A4} +// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst480001A5} +// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst480001A8} +// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst480001B4} +// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst480001B9} +// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst480001BD} +// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst480001BE} +// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst480001C3} +// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst4800015E} +// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst48000158} +// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst4800016E} +// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst48000170} +// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst48000156} +// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst4800015B} +// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst48000157} +// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst4800015D} +// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst48000164} +// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst48000167} +// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst4800016B} +// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst4800016F} +// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst48000177} // CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst48000190} // CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst48000191} // CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst480001FE} // CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst480001FC} // CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst4800021A} // CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst480001FD} -// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst480001E2} -// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst480001DC} -// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst480001D7} -// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst480001F6} -// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst480001F8} +// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst4800021A} +// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst48000215} +// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst48000216} +// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst48000211} +// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst48000213} // CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst480001D5} // CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst480001DA} // CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst480001DF} -// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst480001D6} -// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst480001DB} -// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst480001E1} -// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst480001E9} -// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst480001EC} -// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst480001EF} -// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst480001F3} -// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst480001F7} -// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000200} -// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800021A} -// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst48000215} -// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst48000216} -// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000211} -// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000213} -// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst480001D5} -// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst480001DA} -// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst480001DF} -// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst48000208} -// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst48000209} -// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst4800020A} -// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst4800020B} -// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst4800020C} -// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800020D} -// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst4800020E} -// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst48000212} -// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst48000223} -// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst4800022A} -// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst4800022E} -// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst48000230} -// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst48000231} -// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst48000234} -// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst4800023E} -// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst48000242} -// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst48000244} -// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst48000245} -// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst48000248} -// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst48000254} -// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst48000259} -// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst4800025D} -// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst4800025E} -// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst48000263} +// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst48000208} +// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst48000209} +// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst4800020A} +// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst4800020B} +// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst4800020C} +// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst4800020D} +// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst4800020E} +// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst48000212} +// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000223} +// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800022A} +// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst4800022E} +// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst48000230} +// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000231} +// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000234} +// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst4800023E} +// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst48000242} +// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst48000244} +// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst48000245} +// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst48000248} +// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000254} +// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst48000259} +// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst4800025D} +// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800025E} +// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst48000263} +// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst480001E2} +// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst480001DC} +// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst480001D7} +// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst480001F6} +// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst480001F8} +// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst480001D5} +// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst480001DA} +// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst480001DF} +// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst480001D6} +// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst480001DB} +// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst480001E1} +// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst480001E9} +// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst480001EC} +// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst480001EF} +// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst480001F3} +// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst480001F7} +// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst48000200} // CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst4800021D} // CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst4800021E} // CHECK:STDOUT: clang_decls: {} @@ -247,11 +247,11 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name6000000A: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000000B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000000C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000000D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000000D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name6000000E: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000000F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000010: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000011: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name60000011: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000012: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000013: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000014: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} @@ -262,84 +262,84 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name60000019: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000001A: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name6000001B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000001C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000001D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000001C: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name6000001D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name6000001E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name6000001F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000020: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000021: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000022: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000023: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000024: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name60000020: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000021: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000022: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000023: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000024: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000025: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000026: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000027: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000026: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000027: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name60000028: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000029: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} // CHECK:STDOUT: entity_name6000002A: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000002B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000002C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000002D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000002E: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000002B: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name6000002C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000002D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000002E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name6000002F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name60000030: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000031: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000032: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000033: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000034: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000035: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000036: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000037: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name60000031: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000032: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name60000033: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000034: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000035: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name60000036: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000037: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000038: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000039: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000003A: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000003B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000003C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000039: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name6000003A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000003B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000003C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name6000003D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000F, return_slot_pattern: inst60000032, body: [inst_block60000016]} // CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_slot_pattern: inst60000057} -// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_slot_pattern: inst60000075} +// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_slot_pattern: inst6000006C} // CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_slot_pattern: inst600000AC} -// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_slot_pattern: inst600000DA} -// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_slot_pattern: inst60000119} +// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_slot_pattern: inst600000CD} +// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_slot_pattern: inst60000108} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: // CHECK:STDOUT: generic60000000: {decl: inst60000037, bindings: inst_block60000012} // CHECK:STDOUT: generic60000001: {decl: inst60000051, bindings: inst_block6000001A} -// CHECK:STDOUT: generic60000002: {decl: inst60000060, bindings: inst_block60000021} -// CHECK:STDOUT: generic60000003: {decl: inst60000070, bindings: inst_block60000025} -// CHECK:STDOUT: generic60000004: {decl: inst6000009D, bindings: inst_block60000031} -// CHECK:STDOUT: generic60000005: {decl: inst600000A8, bindings: inst_block60000035} -// CHECK:STDOUT: generic60000006: {decl: inst600000BF, bindings: inst_block60000040} -// CHECK:STDOUT: generic60000007: {decl: inst600000D5, bindings: inst_block60000046} -// CHECK:STDOUT: generic60000008: {decl: inst600000FA, bindings: inst_block60000058} -// CHECK:STDOUT: generic60000009: {decl: inst60000114, bindings: inst_block6000005E} +// CHECK:STDOUT: generic60000002: {decl: inst60000060, bindings: inst_block6000002A} +// CHECK:STDOUT: generic60000003: {decl: inst60000067, bindings: inst_block60000023} +// CHECK:STDOUT: generic60000004: {decl: inst6000009D, bindings: inst_block60000032} +// CHECK:STDOUT: generic60000005: {decl: inst600000A8, bindings: inst_block60000036} +// CHECK:STDOUT: generic60000006: {decl: inst600000BF, bindings: inst_block6000004C} +// CHECK:STDOUT: generic60000007: {decl: inst600000C6, bindings: inst_block60000042} +// CHECK:STDOUT: generic60000008: {decl: inst600000FA, bindings: inst_block60000065} +// CHECK:STDOUT: generic60000009: {decl: inst60000101, bindings: inst_block6000005A} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific60000000: {generic: generic60000000, args: inst_block60000013} // CHECK:STDOUT: specific60000001: {generic: generic60000001, args: inst_block6000001C} // CHECK:STDOUT: specific60000002: {generic: generic60000002, args: inst_block6000001F} -// CHECK:STDOUT: specific60000003: {generic: generic60000002, args: inst_block60000022} -// CHECK:STDOUT: specific60000004: {generic: generic60000001, args: inst_block6000001F} -// CHECK:STDOUT: specific60000005: {generic: generic60000003, args: inst_block6000001F} -// CHECK:STDOUT: specific60000006: {generic: generic60000001, args: inst_block60000027} +// CHECK:STDOUT: specific60000003: {generic: generic60000001, args: inst_block6000001F} +// CHECK:STDOUT: specific60000004: {generic: generic60000003, args: inst_block6000001F} +// CHECK:STDOUT: specific60000005: {generic: generic60000001, args: inst_block60000026} +// CHECK:STDOUT: specific60000006: {generic: generic60000002, args: inst_block6000002B} // CHECK:STDOUT: specific60000007: {generic: generic60000004, args: inst_block60000013} -// CHECK:STDOUT: specific60000008: {generic: generic60000004, args: inst_block60000032} +// CHECK:STDOUT: specific60000008: {generic: generic60000004, args: inst_block60000033} // CHECK:STDOUT: specific60000009: {generic: generic60000005, args: inst_block60000013} // CHECK:STDOUT: specific6000000A: {generic: generic60000006, args: inst_block6000003D} -// CHECK:STDOUT: specific6000000B: {generic: generic60000006, args: inst_block60000041} -// CHECK:STDOUT: specific6000000C: {generic: generic60000001, args: inst_block60000049} -// CHECK:STDOUT: specific6000000D: {generic: generic60000007, args: inst_block6000003D} -// CHECK:STDOUT: specific6000000E: {generic: generic60000001, args: inst_block6000004A} -// CHECK:STDOUT: specific6000000F: {generic: generic60000001, args: inst_block6000004B} +// CHECK:STDOUT: specific6000000B: {generic: generic60000001, args: inst_block60000045} +// CHECK:STDOUT: specific6000000C: {generic: generic60000007, args: inst_block6000003D} +// CHECK:STDOUT: specific6000000D: {generic: generic60000001, args: inst_block60000047} +// CHECK:STDOUT: specific6000000E: {generic: generic60000001, args: inst_block60000048} +// CHECK:STDOUT: specific6000000F: {generic: generic60000006, args: inst_block6000004D} // CHECK:STDOUT: specific60000010: {generic: generic60000008, args: inst_block60000055} -// CHECK:STDOUT: specific60000011: {generic: generic60000008, args: inst_block60000059} -// CHECK:STDOUT: specific60000012: {generic: generic60000001, args: inst_block60000061} -// CHECK:STDOUT: specific60000013: {generic: generic60000009, args: inst_block60000055} -// CHECK:STDOUT: specific60000014: {generic: generic60000001, args: inst_block60000062} -// CHECK:STDOUT: specific60000015: {generic: generic60000001, args: inst_block60000063} -// CHECK:STDOUT: specific60000016: {generic: generic60000001, args: inst_block60000064} +// CHECK:STDOUT: specific60000011: {generic: generic60000001, args: inst_block6000005D} +// CHECK:STDOUT: specific60000012: {generic: generic60000009, args: inst_block60000055} +// CHECK:STDOUT: specific60000013: {generic: generic60000001, args: inst_block6000005F} +// CHECK:STDOUT: specific60000014: {generic: generic60000001, args: inst_block60000060} +// CHECK:STDOUT: specific60000015: {generic: generic60000001, args: inst_block60000061} +// CHECK:STDOUT: specific60000016: {generic: generic60000008, args: inst_block60000066} // CHECK:STDOUT: specific60000017: {generic: generic60000001, args: inst_block6000006F} // CHECK:STDOUT: specific60000018: {generic: generic60000001, args: inst_block60000071} // CHECK:STDOUT: struct_type_fields: @@ -474,43 +474,43 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000064: {kind: ImportRefUnloaded, arg0: import_ir_inst11, arg1: entity_name} // CHECK:STDOUT: inst60000065: {kind: ImplWitnessTable, arg0: inst_block6000001E, arg1: impl60000000} // CHECK:STDOUT: inst60000066: {kind: ImplWitness, arg0: inst60000065, arg1: specific60000002, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000067: {kind: PatternType, arg0: inst60000049, type: type(TypeType)} -// CHECK:STDOUT: inst60000068: {kind: SymbolicBindingPattern, arg0: entity_name60000010, type: type(inst60000067)} -// CHECK:STDOUT: inst60000069: {kind: ImportRefLoaded, arg0: import_ir_inst14, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000006A: {kind: ImportRefLoaded, arg0: import_ir_inst15, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000006B: {kind: ImportRefLoaded, arg0: import_ir_inst16, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000006C: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst6000006D: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000006C, type: type(TypeType)} -// CHECK:STDOUT: inst6000006E: {kind: ConstType, arg0: inst6000006D, type: type(TypeType)} -// CHECK:STDOUT: inst6000006F: {kind: ImplWitness, arg0: inst60000065, arg1: specific60000003, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000070: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000029)} -// CHECK:STDOUT: inst60000071: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} -// CHECK:STDOUT: inst60000072: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000029)} -// CHECK:STDOUT: inst60000073: {kind: PatternType, arg0: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst60000074: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000075: {kind: OutParamPattern, arg0: inst60000074, arg1: call_param1, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000076: {kind: ValueBindingPattern, arg0: entity_name60000011, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000077: {kind: ValueParamPattern, arg0: inst60000076, arg1: call_param0, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000078: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst60000079: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst6000007A: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000079, type: type(TypeType)} -// CHECK:STDOUT: inst6000007B: {kind: ConstType, arg0: inst6000007A, type: type(TypeType)} -// CHECK:STDOUT: inst6000007C: {kind: PatternType, arg0: inst6000007B, type: type(TypeType)} -// CHECK:STDOUT: inst6000007D: {kind: LookupImplWitness, arg0: inst60000061, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007E: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000061, type: type(TypeType)} -// CHECK:STDOUT: inst6000007F: {kind: ImplWitnessAccess, arg0: inst6000007D, arg1: element0, type: type(symbolic_constant60000037)} -// CHECK:STDOUT: inst60000080: {kind: SpecificImplFunction, arg0: inst6000007F, arg1: specific60000004, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000081: {kind: RequireCompleteType, arg0: inst60000062, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000082: {kind: RequireCompleteType, arg0: inst60000063, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000083: {kind: RequireCompleteType, arg0: inst6000007B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000084: {kind: RequireCompleteType, arg0: inst6000007A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000085: {kind: LookupImplWitness, arg0: inst60000079, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000086: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000079, type: type(TypeType)} -// CHECK:STDOUT: inst60000087: {kind: ImplWitnessAccess, arg0: inst60000085, arg1: element0, type: type(symbolic_constant60000045)} -// CHECK:STDOUT: inst60000088: {kind: SpecificImplFunction, arg0: inst60000087, arg1: specific60000006, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000089: {kind: FunctionType, arg0: function60000002, arg1: specific60000003, type: type(TypeType)} -// CHECK:STDOUT: inst6000008A: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000049)} -// CHECK:STDOUT: inst6000008B: {kind: PatternType, arg0: inst60000062, type: type(TypeType)} +// CHECK:STDOUT: inst60000067: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000021)} +// CHECK:STDOUT: inst60000068: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} +// CHECK:STDOUT: inst60000069: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000021)} +// CHECK:STDOUT: inst6000006A: {kind: PatternType, arg0: inst60000063, type: type(TypeType)} +// CHECK:STDOUT: inst6000006B: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000026)} +// CHECK:STDOUT: inst6000006C: {kind: OutParamPattern, arg0: inst6000006B, arg1: call_param1, type: type(symbolic_constant60000026)} +// CHECK:STDOUT: inst6000006D: {kind: ValueBindingPattern, arg0: entity_name6000000D, type: type(symbolic_constant60000026)} +// CHECK:STDOUT: inst6000006E: {kind: ValueParamPattern, arg0: inst6000006D, arg1: call_param0, type: type(symbolic_constant60000026)} +// CHECK:STDOUT: inst6000006F: {kind: ImportRefLoaded, arg0: import_ir_inst18, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000070: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000071: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000070, type: type(TypeType)} +// CHECK:STDOUT: inst60000072: {kind: ConstType, arg0: inst60000071, type: type(TypeType)} +// CHECK:STDOUT: inst60000073: {kind: PatternType, arg0: inst60000072, type: type(TypeType)} +// CHECK:STDOUT: inst60000074: {kind: LookupImplWitness, arg0: inst60000061, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000075: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000061, type: type(TypeType)} +// CHECK:STDOUT: inst60000076: {kind: ImplWitnessAccess, arg0: inst60000074, arg1: element0, type: type(symbolic_constant60000030)} +// CHECK:STDOUT: inst60000077: {kind: SpecificImplFunction, arg0: inst60000076, arg1: specific60000003, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000078: {kind: PatternType, arg0: inst60000062, type: type(TypeType)} +// CHECK:STDOUT: inst60000079: {kind: RequireCompleteType, arg0: inst60000062, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007A: {kind: RequireCompleteType, arg0: inst60000063, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007B: {kind: RequireCompleteType, arg0: inst60000072, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007C: {kind: RequireCompleteType, arg0: inst60000071, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007D: {kind: LookupImplWitness, arg0: inst60000070, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007E: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000070, type: type(TypeType)} +// CHECK:STDOUT: inst6000007F: {kind: ImplWitnessAccess, arg0: inst6000007D, arg1: element0, type: type(symbolic_constant6000003F)} +// CHECK:STDOUT: inst60000080: {kind: SpecificImplFunction, arg0: inst6000007F, arg1: specific60000005, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000081: {kind: PatternType, arg0: inst60000049, type: type(TypeType)} +// CHECK:STDOUT: inst60000082: {kind: SymbolicBindingPattern, arg0: entity_name60000013, type: type(inst60000081)} +// CHECK:STDOUT: inst60000083: {kind: ImportRefLoaded, arg0: import_ir_inst24, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000084: {kind: ImportRefLoaded, arg0: import_ir_inst25, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000085: {kind: ImportRefLoaded, arg0: import_ir_inst26, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000086: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000087: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000086, type: type(TypeType)} +// CHECK:STDOUT: inst60000088: {kind: ConstType, arg0: inst60000087, type: type(TypeType)} +// CHECK:STDOUT: inst60000089: {kind: ImplWitness, arg0: inst60000065, arg1: specific60000006, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008A: {kind: FunctionType, arg0: function60000002, arg1: specific60000006, type: type(TypeType)} +// CHECK:STDOUT: inst6000008B: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000004A)} // CHECK:STDOUT: inst6000008C: {kind: ImportRefUnloaded, arg0: import_ir_inst2D, arg1: entity_name} // CHECK:STDOUT: inst6000008D: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} // CHECK:STDOUT: inst6000008E: {kind: ImportRefLoaded, arg0: import_ir_inst2F, arg1: entity_name, type: type(TypeType)} @@ -569,57 +569,57 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000C3: {kind: ImportRefUnloaded, arg0: import_ir_inst5E, arg1: entity_name} // CHECK:STDOUT: inst600000C4: {kind: ImplWitnessTable, arg0: inst_block6000003C, arg1: impl60000008} // CHECK:STDOUT: inst600000C5: {kind: ImplWitness, arg0: inst600000C4, arg1: specific6000000A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000C6: {kind: TupleType, arg0: inst_block6000003E, type: type(TypeType)} -// CHECK:STDOUT: inst600000C7: {kind: TupleValue, arg0: inst_block6000003D, type: type(inst600000C6)} -// CHECK:STDOUT: inst600000C8: {kind: SymbolicBindingPattern, arg0: entity_name60000022, type: type(inst60000067)} -// CHECK:STDOUT: inst600000C9: {kind: SymbolicBindingPattern, arg0: entity_name60000023, type: type(inst60000067)} -// CHECK:STDOUT: inst600000CA: {kind: ImportRefLoaded, arg0: import_ir_inst62, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CB: {kind: ImportRefLoaded, arg0: import_ir_inst63, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CC: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst600000CD: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst600000CE: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst600000CF: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst600000D0: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000C6)} -// CHECK:STDOUT: inst600000D1: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000CE, type: type(TypeType)} -// CHECK:STDOUT: inst600000D2: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000CF, type: type(TypeType)} -// CHECK:STDOUT: inst600000D3: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} -// CHECK:STDOUT: inst600000D4: {kind: ImplWitness, arg0: inst600000C4, arg1: specific6000000B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000D5: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000007A)} -// CHECK:STDOUT: inst600000D6: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} -// CHECK:STDOUT: inst600000D7: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000007A)} -// CHECK:STDOUT: inst600000D8: {kind: PatternType, arg0: inst600000C2, type: type(TypeType)} -// CHECK:STDOUT: inst600000D9: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DA: {kind: OutParamPattern, arg0: inst600000D9, arg1: call_param1, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DB: {kind: ValueBindingPattern, arg0: entity_name60000024, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DC: {kind: ValueParamPattern, arg0: inst600000DB, arg1: call_param0, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DD: {kind: ImportRefLoaded, arg0: import_ir_inst72, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst600000DE: {kind: ImportRefLoaded, arg0: import_ir_inst73, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst600000DF: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst600000E0: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000DF, type: type(TypeType)} -// CHECK:STDOUT: inst600000E1: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst600000E2: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000E1, type: type(TypeType)} -// CHECK:STDOUT: inst600000E3: {kind: TupleType, arg0: inst_block60000047, type: type(TypeType)} -// CHECK:STDOUT: inst600000E4: {kind: PatternType, arg0: inst600000E3, type: type(TypeType)} -// CHECK:STDOUT: inst600000E5: {kind: LookupImplWitness, arg0: inst600000C0, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E6: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000C0, type: type(TypeType)} -// CHECK:STDOUT: inst600000E7: {kind: ImplWitnessAccess, arg0: inst600000E5, arg1: element0, type: type(symbolic_constant6000008C)} -// CHECK:STDOUT: inst600000E8: {kind: SpecificImplFunction, arg0: inst600000E7, arg1: specific6000000C, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000E9: {kind: RequireCompleteType, arg0: inst600000C1, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EA: {kind: RequireCompleteType, arg0: inst600000C2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EB: {kind: RequireCompleteType, arg0: inst600000E3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EC: {kind: RequireCompleteType, arg0: inst600000E0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000ED: {kind: LookupImplWitness, arg0: inst600000DF, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EE: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000DF, type: type(TypeType)} -// CHECK:STDOUT: inst600000EF: {kind: ImplWitnessAccess, arg0: inst600000ED, arg1: element0, type: type(symbolic_constant6000009F)} -// CHECK:STDOUT: inst600000F0: {kind: SpecificImplFunction, arg0: inst600000EF, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000F1: {kind: RequireCompleteType, arg0: inst600000E2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F2: {kind: LookupImplWitness, arg0: inst600000E1, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F3: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000E1, type: type(TypeType)} -// CHECK:STDOUT: inst600000F4: {kind: ImplWitnessAccess, arg0: inst600000F2, arg1: element0, type: type(symbolic_constant600000A4)} -// CHECK:STDOUT: inst600000F5: {kind: SpecificImplFunction, arg0: inst600000F4, arg1: specific6000000F, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000F6: {kind: FunctionType, arg0: function60000004, arg1: specific6000000B, type: type(TypeType)} -// CHECK:STDOUT: inst600000F7: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000A8)} -// CHECK:STDOUT: inst600000F8: {kind: PatternType, arg0: inst600000C1, type: type(TypeType)} +// CHECK:STDOUT: inst600000C6: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000006A)} +// CHECK:STDOUT: inst600000C7: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} +// CHECK:STDOUT: inst600000C8: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000006A)} +// CHECK:STDOUT: inst600000C9: {kind: TupleType, arg0: inst_block6000003E, type: type(TypeType)} +// CHECK:STDOUT: inst600000CA: {kind: TupleValue, arg0: inst_block6000003D, type: type(inst600000C9)} +// CHECK:STDOUT: inst600000CB: {kind: PatternType, arg0: inst600000C2, type: type(TypeType)} +// CHECK:STDOUT: inst600000CC: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000070)} +// CHECK:STDOUT: inst600000CD: {kind: OutParamPattern, arg0: inst600000CC, arg1: call_param1, type: type(symbolic_constant60000070)} +// CHECK:STDOUT: inst600000CE: {kind: ValueBindingPattern, arg0: entity_name6000001C, type: type(symbolic_constant60000070)} +// CHECK:STDOUT: inst600000CF: {kind: ValueParamPattern, arg0: inst600000CE, arg1: call_param0, type: type(symbolic_constant60000070)} +// CHECK:STDOUT: inst600000D0: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000D1: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000D2: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000D3: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000D2, type: type(TypeType)} +// CHECK:STDOUT: inst600000D4: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000D5: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000D4, type: type(TypeType)} +// CHECK:STDOUT: inst600000D6: {kind: TupleType, arg0: inst_block60000043, type: type(TypeType)} +// CHECK:STDOUT: inst600000D7: {kind: PatternType, arg0: inst600000D6, type: type(TypeType)} +// CHECK:STDOUT: inst600000D8: {kind: LookupImplWitness, arg0: inst600000C0, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000D9: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000C0, type: type(TypeType)} +// CHECK:STDOUT: inst600000DA: {kind: ImplWitnessAccess, arg0: inst600000D8, arg1: element0, type: type(symbolic_constant6000007F)} +// CHECK:STDOUT: inst600000DB: {kind: SpecificImplFunction, arg0: inst600000DA, arg1: specific6000000B, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000DC: {kind: PatternType, arg0: inst600000C1, type: type(TypeType)} +// CHECK:STDOUT: inst600000DD: {kind: RequireCompleteType, arg0: inst600000C1, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000DE: {kind: RequireCompleteType, arg0: inst600000C2, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000DF: {kind: RequireCompleteType, arg0: inst600000D6, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E0: {kind: RequireCompleteType, arg0: inst600000D3, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E1: {kind: LookupImplWitness, arg0: inst600000D2, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E2: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000D2, type: type(TypeType)} +// CHECK:STDOUT: inst600000E3: {kind: ImplWitnessAccess, arg0: inst600000E1, arg1: element0, type: type(symbolic_constant60000093)} +// CHECK:STDOUT: inst600000E4: {kind: SpecificImplFunction, arg0: inst600000E3, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000E5: {kind: RequireCompleteType, arg0: inst600000D5, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E6: {kind: LookupImplWitness, arg0: inst600000D4, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E7: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000D4, type: type(TypeType)} +// CHECK:STDOUT: inst600000E8: {kind: ImplWitnessAccess, arg0: inst600000E6, arg1: element0, type: type(symbolic_constant60000098)} +// CHECK:STDOUT: inst600000E9: {kind: SpecificImplFunction, arg0: inst600000E8, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000EA: {kind: SymbolicBindingPattern, arg0: entity_name60000027, type: type(inst60000081)} +// CHECK:STDOUT: inst600000EB: {kind: SymbolicBindingPattern, arg0: entity_name60000028, type: type(inst60000081)} +// CHECK:STDOUT: inst600000EC: {kind: ImportRefLoaded, arg0: import_ir_inst7A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000ED: {kind: ImportRefLoaded, arg0: import_ir_inst7B, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000EE: {kind: ImportRefLoaded, arg0: import_ir_inst7C, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000EF: {kind: ImportRefLoaded, arg0: import_ir_inst7D, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000F0: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000F1: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000F2: {kind: TupleValue, arg0: inst_block6000004D, type: type(inst600000C9)} +// CHECK:STDOUT: inst600000F3: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000F0, type: type(TypeType)} +// CHECK:STDOUT: inst600000F4: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000F1, type: type(TypeType)} +// CHECK:STDOUT: inst600000F5: {kind: TupleType, arg0: inst_block6000004E, type: type(TypeType)} +// CHECK:STDOUT: inst600000F6: {kind: ImplWitness, arg0: inst600000C4, arg1: specific6000000F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F7: {kind: FunctionType, arg0: function60000004, arg1: specific6000000F, type: type(TypeType)} +// CHECK:STDOUT: inst600000F8: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000A9)} // CHECK:STDOUT: inst600000F9: {kind: ImportRefUnloaded, arg0: import_ir_inst87, arg1: entity_name} // CHECK:STDOUT: inst600000FA: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} // CHECK:STDOUT: inst600000FB: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} @@ -628,69 +628,69 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000FE: {kind: ImportRefUnloaded, arg0: import_ir_inst89, arg1: entity_name} // CHECK:STDOUT: inst600000FF: {kind: ImplWitnessTable, arg0: inst_block60000054, arg1: impl60000009} // CHECK:STDOUT: inst60000100: {kind: ImplWitness, arg0: inst600000FF, arg1: specific60000010, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000101: {kind: TupleType, arg0: inst_block60000056, type: type(TypeType)} -// CHECK:STDOUT: inst60000102: {kind: TupleValue, arg0: inst_block60000055, type: type(inst60000101)} -// CHECK:STDOUT: inst60000103: {kind: SymbolicBindingPattern, arg0: entity_name60000034, type: type(inst60000067)} -// CHECK:STDOUT: inst60000104: {kind: SymbolicBindingPattern, arg0: entity_name60000035, type: type(inst60000067)} -// CHECK:STDOUT: inst60000105: {kind: SymbolicBindingPattern, arg0: entity_name60000036, type: type(inst60000067)} -// CHECK:STDOUT: inst60000106: {kind: ImportRefLoaded, arg0: import_ir_inst8E, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000107: {kind: ImportRefLoaded, arg0: import_ir_inst8F, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000108: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst60000109: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000010A: {kind: ImportRefLoaded, arg0: import_ir_inst92, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000010B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst6000010C: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst6000010D: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst6000010E: {kind: TupleValue, arg0: inst_block60000059, type: type(inst60000101)} -// CHECK:STDOUT: inst6000010F: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000010B, type: type(TypeType)} -// CHECK:STDOUT: inst60000110: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst6000010C, type: type(TypeType)} -// CHECK:STDOUT: inst60000111: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst6000010D, type: type(TypeType)} -// CHECK:STDOUT: inst60000112: {kind: TupleType, arg0: inst_block6000005A, type: type(TypeType)} -// CHECK:STDOUT: inst60000113: {kind: ImplWitness, arg0: inst600000FF, arg1: specific60000011, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000114: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000C6)} -// CHECK:STDOUT: inst60000115: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} -// CHECK:STDOUT: inst60000116: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C6)} -// CHECK:STDOUT: inst60000117: {kind: PatternType, arg0: inst600000FD, type: type(TypeType)} -// CHECK:STDOUT: inst60000118: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst60000119: {kind: OutParamPattern, arg0: inst60000118, arg1: call_param1, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011A: {kind: ValueBindingPattern, arg0: entity_name60000037, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011B: {kind: ValueParamPattern, arg0: inst6000011A, arg1: call_param0, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011C: {kind: ImportRefLoaded, arg0: import_ir_instA1, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000011D: {kind: ImportRefLoaded, arg0: import_ir_instA2, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000011E: {kind: ImportRefLoaded, arg0: import_ir_instA3, arg1: entity_name, type: type(inst60000049)} -// CHECK:STDOUT: inst6000011F: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst60000120: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000011F, type: type(TypeType)} -// CHECK:STDOUT: inst60000121: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst60000122: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000121, type: type(TypeType)} -// CHECK:STDOUT: inst60000123: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} -// CHECK:STDOUT: inst60000124: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000123, type: type(TypeType)} -// CHECK:STDOUT: inst60000125: {kind: TupleType, arg0: inst_block6000005F, type: type(TypeType)} -// CHECK:STDOUT: inst60000126: {kind: PatternType, arg0: inst60000125, type: type(TypeType)} -// CHECK:STDOUT: inst60000127: {kind: LookupImplWitness, arg0: inst600000FB, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000128: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000FB, type: type(TypeType)} -// CHECK:STDOUT: inst60000129: {kind: ImplWitnessAccess, arg0: inst60000127, arg1: element0, type: type(symbolic_constant600000DC)} -// CHECK:STDOUT: inst6000012A: {kind: SpecificImplFunction, arg0: inst60000129, arg1: specific60000012, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000012B: {kind: RequireCompleteType, arg0: inst600000FC, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012C: {kind: RequireCompleteType, arg0: inst600000FD, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012D: {kind: RequireCompleteType, arg0: inst60000125, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012E: {kind: RequireCompleteType, arg0: inst60000120, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012F: {kind: LookupImplWitness, arg0: inst6000011F, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000130: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst6000011F, type: type(TypeType)} -// CHECK:STDOUT: inst60000131: {kind: ImplWitnessAccess, arg0: inst6000012F, arg1: element0, type: type(symbolic_constant600000F4)} -// CHECK:STDOUT: inst60000132: {kind: SpecificImplFunction, arg0: inst60000131, arg1: specific60000014, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000133: {kind: RequireCompleteType, arg0: inst60000122, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000134: {kind: LookupImplWitness, arg0: inst60000121, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000135: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000121, type: type(TypeType)} -// CHECK:STDOUT: inst60000136: {kind: ImplWitnessAccess, arg0: inst60000134, arg1: element0, type: type(symbolic_constant600000F9)} -// CHECK:STDOUT: inst60000137: {kind: SpecificImplFunction, arg0: inst60000136, arg1: specific60000015, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000138: {kind: RequireCompleteType, arg0: inst60000124, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000139: {kind: LookupImplWitness, arg0: inst60000123, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013A: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000123, type: type(TypeType)} -// CHECK:STDOUT: inst6000013B: {kind: ImplWitnessAccess, arg0: inst60000139, arg1: element0, type: type(symbolic_constant600000FE)} -// CHECK:STDOUT: inst6000013C: {kind: SpecificImplFunction, arg0: inst6000013B, arg1: specific60000016, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000013D: {kind: FunctionType, arg0: function60000005, arg1: specific60000011, type: type(TypeType)} -// CHECK:STDOUT: inst6000013E: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000102)} -// CHECK:STDOUT: inst6000013F: {kind: PatternType, arg0: inst600000FC, type: type(TypeType)} +// CHECK:STDOUT: inst60000101: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000B1)} +// CHECK:STDOUT: inst60000102: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} +// CHECK:STDOUT: inst60000103: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000B1)} +// CHECK:STDOUT: inst60000104: {kind: TupleType, arg0: inst_block60000056, type: type(TypeType)} +// CHECK:STDOUT: inst60000105: {kind: TupleValue, arg0: inst_block60000055, type: type(inst60000104)} +// CHECK:STDOUT: inst60000106: {kind: PatternType, arg0: inst600000FD, type: type(TypeType)} +// CHECK:STDOUT: inst60000107: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000B7)} +// CHECK:STDOUT: inst60000108: {kind: OutParamPattern, arg0: inst60000107, arg1: call_param1, type: type(symbolic_constant600000B7)} +// CHECK:STDOUT: inst60000109: {kind: ValueBindingPattern, arg0: entity_name6000002B, type: type(symbolic_constant600000B7)} +// CHECK:STDOUT: inst6000010A: {kind: ValueParamPattern, arg0: inst60000109, arg1: call_param0, type: type(symbolic_constant600000B7)} +// CHECK:STDOUT: inst6000010B: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010C: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010D: {kind: ImportRefLoaded, arg0: import_ir_inst92, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010E: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010F: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000010E, type: type(TypeType)} +// CHECK:STDOUT: inst60000110: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000111: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000110, type: type(TypeType)} +// CHECK:STDOUT: inst60000112: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000113: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000112, type: type(TypeType)} +// CHECK:STDOUT: inst60000114: {kind: TupleType, arg0: inst_block6000005B, type: type(TypeType)} +// CHECK:STDOUT: inst60000115: {kind: PatternType, arg0: inst60000114, type: type(TypeType)} +// CHECK:STDOUT: inst60000116: {kind: LookupImplWitness, arg0: inst600000FB, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000117: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000FB, type: type(TypeType)} +// CHECK:STDOUT: inst60000118: {kind: ImplWitnessAccess, arg0: inst60000116, arg1: element0, type: type(symbolic_constant600000CB)} +// CHECK:STDOUT: inst60000119: {kind: SpecificImplFunction, arg0: inst60000118, arg1: specific60000011, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000011A: {kind: PatternType, arg0: inst600000FC, type: type(TypeType)} +// CHECK:STDOUT: inst6000011B: {kind: RequireCompleteType, arg0: inst600000FC, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000011C: {kind: RequireCompleteType, arg0: inst600000FD, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000011D: {kind: RequireCompleteType, arg0: inst60000114, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000011E: {kind: RequireCompleteType, arg0: inst6000010F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000011F: {kind: LookupImplWitness, arg0: inst6000010E, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000120: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst6000010E, type: type(TypeType)} +// CHECK:STDOUT: inst60000121: {kind: ImplWitnessAccess, arg0: inst6000011F, arg1: element0, type: type(symbolic_constant600000E4)} +// CHECK:STDOUT: inst60000122: {kind: SpecificImplFunction, arg0: inst60000121, arg1: specific60000013, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000123: {kind: RequireCompleteType, arg0: inst60000111, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000124: {kind: LookupImplWitness, arg0: inst60000110, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000125: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000110, type: type(TypeType)} +// CHECK:STDOUT: inst60000126: {kind: ImplWitnessAccess, arg0: inst60000124, arg1: element0, type: type(symbolic_constant600000E9)} +// CHECK:STDOUT: inst60000127: {kind: SpecificImplFunction, arg0: inst60000126, arg1: specific60000014, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000128: {kind: RequireCompleteType, arg0: inst60000113, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000129: {kind: LookupImplWitness, arg0: inst60000112, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012A: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000112, type: type(TypeType)} +// CHECK:STDOUT: inst6000012B: {kind: ImplWitnessAccess, arg0: inst60000129, arg1: element0, type: type(symbolic_constant600000EE)} +// CHECK:STDOUT: inst6000012C: {kind: SpecificImplFunction, arg0: inst6000012B, arg1: specific60000015, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000012D: {kind: SymbolicBindingPattern, arg0: entity_name6000003B, type: type(inst60000081)} +// CHECK:STDOUT: inst6000012E: {kind: SymbolicBindingPattern, arg0: entity_name6000003C, type: type(inst60000081)} +// CHECK:STDOUT: inst6000012F: {kind: SymbolicBindingPattern, arg0: entity_name6000003D, type: type(inst60000081)} +// CHECK:STDOUT: inst60000130: {kind: ImportRefLoaded, arg0: import_ir_instAE, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000131: {kind: ImportRefLoaded, arg0: import_ir_instAF, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000132: {kind: ImportRefLoaded, arg0: import_ir_instB0, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000133: {kind: ImportRefLoaded, arg0: import_ir_instB1, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000134: {kind: ImportRefLoaded, arg0: import_ir_instB2, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000135: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000136: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000137: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000138: {kind: TupleValue, arg0: inst_block60000066, type: type(inst60000104)} +// CHECK:STDOUT: inst60000139: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000135, type: type(TypeType)} +// CHECK:STDOUT: inst6000013A: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000136, type: type(TypeType)} +// CHECK:STDOUT: inst6000013B: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000137, type: type(TypeType)} +// CHECK:STDOUT: inst6000013C: {kind: TupleType, arg0: inst_block60000067, type: type(TypeType)} +// CHECK:STDOUT: inst6000013D: {kind: ImplWitness, arg0: inst600000FF, arg1: specific60000016, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013E: {kind: FunctionType, arg0: function60000005, arg1: specific60000016, type: type(TypeType)} +// CHECK:STDOUT: inst6000013F: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000103)} // CHECK:STDOUT: inst60000140: {kind: LookupImplWitness, arg0: inst6000001A, arg1: specific_interface60000000, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000141: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000142: {kind: FacetValue, arg0: inst6000001A, arg1: inst_block6000006D, type: type(inst60000049)} @@ -798,41 +798,41 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000064: constant // CHECK:STDOUT: inst60000065: concrete_constant(inst60000065) // CHECK:STDOUT: inst60000066: symbolic_constant6000001F -// CHECK:STDOUT: inst60000067: concrete_constant(inst60000067) -// CHECK:STDOUT: inst60000068: concrete_constant(inst60000068) -// CHECK:STDOUT: inst60000069: symbolic_constant6000001E -// CHECK:STDOUT: inst6000006A: concrete_constant(inst60000049) -// CHECK:STDOUT: inst6000006B: symbolic_constant60000024 -// CHECK:STDOUT: inst6000006C: symbolic_constant60000025 -// CHECK:STDOUT: inst6000006D: symbolic_constant60000026 -// CHECK:STDOUT: inst6000006E: symbolic_constant60000027 -// CHECK:STDOUT: inst6000006F: symbolic_constant60000028 +// CHECK:STDOUT: inst60000067: symbolic_constant60000023 +// CHECK:STDOUT: inst60000068: symbolic_constant60000021 +// CHECK:STDOUT: inst60000069: symbolic_constant60000022 +// CHECK:STDOUT: inst6000006A: symbolic_constant60000025 +// CHECK:STDOUT: inst6000006B: concrete_constant(inst6000006B) +// CHECK:STDOUT: inst6000006C: concrete_constant(inst6000006C) +// CHECK:STDOUT: inst6000006D: concrete_constant(inst6000006D) +// CHECK:STDOUT: inst6000006E: concrete_constant(inst6000006E) +// CHECK:STDOUT: inst6000006F: symbolic_constant6000002A // CHECK:STDOUT: inst60000070: symbolic_constant6000002B -// CHECK:STDOUT: inst60000071: symbolic_constant60000029 -// CHECK:STDOUT: inst60000072: symbolic_constant6000002A -// CHECK:STDOUT: inst60000073: symbolic_constant6000002D -// CHECK:STDOUT: inst60000074: concrete_constant(inst60000074) -// CHECK:STDOUT: inst60000075: concrete_constant(inst60000075) -// CHECK:STDOUT: inst60000076: concrete_constant(inst60000076) -// CHECK:STDOUT: inst60000077: concrete_constant(inst60000077) -// CHECK:STDOUT: inst60000078: symbolic_constant60000024 -// CHECK:STDOUT: inst60000079: symbolic_constant60000032 -// CHECK:STDOUT: inst6000007A: symbolic_constant60000033 -// CHECK:STDOUT: inst6000007B: symbolic_constant60000034 -// CHECK:STDOUT: inst6000007C: symbolic_constant60000035 -// CHECK:STDOUT: inst6000007D: symbolic_constant60000036 -// CHECK:STDOUT: inst6000007E: symbolic_constant60000037 -// CHECK:STDOUT: inst6000007F: symbolic_constant60000038 -// CHECK:STDOUT: inst60000080: symbolic_constant60000039 -// CHECK:STDOUT: inst60000081: symbolic_constant6000003E -// CHECK:STDOUT: inst60000082: symbolic_constant60000040 -// CHECK:STDOUT: inst60000083: symbolic_constant60000042 -// CHECK:STDOUT: inst60000084: symbolic_constant60000043 -// CHECK:STDOUT: inst60000085: symbolic_constant60000044 +// CHECK:STDOUT: inst60000071: symbolic_constant6000002C +// CHECK:STDOUT: inst60000072: symbolic_constant6000002D +// CHECK:STDOUT: inst60000073: symbolic_constant6000002E +// CHECK:STDOUT: inst60000074: symbolic_constant6000002F +// CHECK:STDOUT: inst60000075: symbolic_constant60000030 +// CHECK:STDOUT: inst60000076: symbolic_constant60000031 +// CHECK:STDOUT: inst60000077: symbolic_constant60000032 +// CHECK:STDOUT: inst60000078: symbolic_constant60000034 +// CHECK:STDOUT: inst60000079: symbolic_constant60000038 +// CHECK:STDOUT: inst6000007A: symbolic_constant6000003A +// CHECK:STDOUT: inst6000007B: symbolic_constant6000003C +// CHECK:STDOUT: inst6000007C: symbolic_constant6000003D +// CHECK:STDOUT: inst6000007D: symbolic_constant6000003E +// CHECK:STDOUT: inst6000007E: symbolic_constant6000003F +// CHECK:STDOUT: inst6000007F: symbolic_constant60000040 +// CHECK:STDOUT: inst60000080: symbolic_constant60000041 +// CHECK:STDOUT: inst60000081: concrete_constant(inst60000081) +// CHECK:STDOUT: inst60000082: concrete_constant(inst60000082) +// CHECK:STDOUT: inst60000083: symbolic_constant6000001E +// CHECK:STDOUT: inst60000084: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000085: symbolic_constant6000002A // CHECK:STDOUT: inst60000086: symbolic_constant60000045 // CHECK:STDOUT: inst60000087: symbolic_constant60000046 // CHECK:STDOUT: inst60000088: symbolic_constant60000047 -// CHECK:STDOUT: inst60000089: symbolic_constant60000049 +// CHECK:STDOUT: inst60000089: symbolic_constant60000048 // CHECK:STDOUT: inst6000008A: symbolic_constant6000004A // CHECK:STDOUT: inst6000008B: symbolic_constant6000004B // CHECK:STDOUT: inst6000008C: constant @@ -893,55 +893,55 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000C3: constant // CHECK:STDOUT: inst600000C4: concrete_constant(inst600000C4) // CHECK:STDOUT: inst600000C5: symbolic_constant60000068 -// CHECK:STDOUT: inst600000C6: concrete_constant(inst600000C6) -// CHECK:STDOUT: inst600000C7: symbolic_constant6000006D -// CHECK:STDOUT: inst600000C8: concrete_constant(inst600000C8) +// CHECK:STDOUT: inst600000C6: symbolic_constant6000006C +// CHECK:STDOUT: inst600000C7: symbolic_constant6000006A +// CHECK:STDOUT: inst600000C8: symbolic_constant6000006B // CHECK:STDOUT: inst600000C9: concrete_constant(inst600000C9) -// CHECK:STDOUT: inst600000CA: symbolic_constant60000067 -// CHECK:STDOUT: inst600000CB: concrete_constant(inst60000049) -// CHECK:STDOUT: inst600000CC: symbolic_constant60000072 -// CHECK:STDOUT: inst600000CD: symbolic_constant60000071 -// CHECK:STDOUT: inst600000CE: symbolic_constant60000073 -// CHECK:STDOUT: inst600000CF: symbolic_constant60000074 -// CHECK:STDOUT: inst600000D0: symbolic_constant60000075 +// CHECK:STDOUT: inst600000CA: symbolic_constant6000006E +// CHECK:STDOUT: inst600000CB: symbolic_constant6000006F +// CHECK:STDOUT: inst600000CC: concrete_constant(inst600000CC) +// CHECK:STDOUT: inst600000CD: concrete_constant(inst600000CD) +// CHECK:STDOUT: inst600000CE: concrete_constant(inst600000CE) +// CHECK:STDOUT: inst600000CF: concrete_constant(inst600000CF) +// CHECK:STDOUT: inst600000D0: symbolic_constant60000077 // CHECK:STDOUT: inst600000D1: symbolic_constant60000076 -// CHECK:STDOUT: inst600000D2: symbolic_constant60000077 -// CHECK:STDOUT: inst600000D3: symbolic_constant60000078 -// CHECK:STDOUT: inst600000D4: symbolic_constant60000079 -// CHECK:STDOUT: inst600000D5: symbolic_constant6000007C -// CHECK:STDOUT: inst600000D6: symbolic_constant6000007A -// CHECK:STDOUT: inst600000D7: symbolic_constant6000007B +// CHECK:STDOUT: inst600000D2: symbolic_constant60000078 +// CHECK:STDOUT: inst600000D3: symbolic_constant60000079 +// CHECK:STDOUT: inst600000D4: symbolic_constant6000007A +// CHECK:STDOUT: inst600000D5: symbolic_constant6000007B +// CHECK:STDOUT: inst600000D6: symbolic_constant6000007C +// CHECK:STDOUT: inst600000D7: symbolic_constant6000007D // CHECK:STDOUT: inst600000D8: symbolic_constant6000007E -// CHECK:STDOUT: inst600000D9: concrete_constant(inst600000D9) -// CHECK:STDOUT: inst600000DA: concrete_constant(inst600000DA) -// CHECK:STDOUT: inst600000DB: concrete_constant(inst600000DB) -// CHECK:STDOUT: inst600000DC: concrete_constant(inst600000DC) -// CHECK:STDOUT: inst600000DD: symbolic_constant60000072 -// CHECK:STDOUT: inst600000DE: symbolic_constant60000071 -// CHECK:STDOUT: inst600000DF: symbolic_constant60000085 -// CHECK:STDOUT: inst600000E0: symbolic_constant60000086 -// CHECK:STDOUT: inst600000E1: symbolic_constant60000087 -// CHECK:STDOUT: inst600000E2: symbolic_constant60000088 -// CHECK:STDOUT: inst600000E3: symbolic_constant60000089 -// CHECK:STDOUT: inst600000E4: symbolic_constant6000008A -// CHECK:STDOUT: inst600000E5: symbolic_constant6000008B -// CHECK:STDOUT: inst600000E6: symbolic_constant6000008C -// CHECK:STDOUT: inst600000E7: symbolic_constant6000008D -// CHECK:STDOUT: inst600000E8: symbolic_constant6000008E -// CHECK:STDOUT: inst600000E9: symbolic_constant60000093 -// CHECK:STDOUT: inst600000EA: symbolic_constant6000009A -// CHECK:STDOUT: inst600000EB: symbolic_constant6000009C -// CHECK:STDOUT: inst600000EC: symbolic_constant6000009D -// CHECK:STDOUT: inst600000ED: symbolic_constant6000009E -// CHECK:STDOUT: inst600000EE: symbolic_constant6000009F -// CHECK:STDOUT: inst600000EF: symbolic_constant600000A0 +// CHECK:STDOUT: inst600000D9: symbolic_constant6000007F +// CHECK:STDOUT: inst600000DA: symbolic_constant60000080 +// CHECK:STDOUT: inst600000DB: symbolic_constant60000081 +// CHECK:STDOUT: inst600000DC: symbolic_constant60000083 +// CHECK:STDOUT: inst600000DD: symbolic_constant60000087 +// CHECK:STDOUT: inst600000DE: symbolic_constant6000008E +// CHECK:STDOUT: inst600000DF: symbolic_constant60000090 +// CHECK:STDOUT: inst600000E0: symbolic_constant60000091 +// CHECK:STDOUT: inst600000E1: symbolic_constant60000092 +// CHECK:STDOUT: inst600000E2: symbolic_constant60000093 +// CHECK:STDOUT: inst600000E3: symbolic_constant60000094 +// CHECK:STDOUT: inst600000E4: symbolic_constant60000095 +// CHECK:STDOUT: inst600000E5: symbolic_constant60000096 +// CHECK:STDOUT: inst600000E6: symbolic_constant60000097 +// CHECK:STDOUT: inst600000E7: symbolic_constant60000098 +// CHECK:STDOUT: inst600000E8: symbolic_constant60000099 +// CHECK:STDOUT: inst600000E9: symbolic_constant6000009A +// CHECK:STDOUT: inst600000EA: concrete_constant(inst600000EA) +// CHECK:STDOUT: inst600000EB: concrete_constant(inst600000EB) +// CHECK:STDOUT: inst600000EC: symbolic_constant60000067 +// CHECK:STDOUT: inst600000ED: concrete_constant(inst60000049) +// CHECK:STDOUT: inst600000EE: symbolic_constant60000077 +// CHECK:STDOUT: inst600000EF: symbolic_constant60000076 // CHECK:STDOUT: inst600000F0: symbolic_constant600000A1 // CHECK:STDOUT: inst600000F1: symbolic_constant600000A2 // CHECK:STDOUT: inst600000F2: symbolic_constant600000A3 // CHECK:STDOUT: inst600000F3: symbolic_constant600000A4 // CHECK:STDOUT: inst600000F4: symbolic_constant600000A5 // CHECK:STDOUT: inst600000F5: symbolic_constant600000A6 -// CHECK:STDOUT: inst600000F6: symbolic_constant600000A8 +// CHECK:STDOUT: inst600000F6: symbolic_constant600000A7 // CHECK:STDOUT: inst600000F7: symbolic_constant600000A9 // CHECK:STDOUT: inst600000F8: symbolic_constant600000AA // CHECK:STDOUT: inst600000F9: constant @@ -952,58 +952,58 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000FE: constant // CHECK:STDOUT: inst600000FF: concrete_constant(inst600000FF) // CHECK:STDOUT: inst60000100: symbolic_constant600000AF -// CHECK:STDOUT: inst60000101: concrete_constant(inst60000101) -// CHECK:STDOUT: inst60000102: symbolic_constant600000B5 -// CHECK:STDOUT: inst60000103: concrete_constant(inst60000103) +// CHECK:STDOUT: inst60000101: symbolic_constant600000B3 +// CHECK:STDOUT: inst60000102: symbolic_constant600000B1 +// CHECK:STDOUT: inst60000103: symbolic_constant600000B2 // CHECK:STDOUT: inst60000104: concrete_constant(inst60000104) -// CHECK:STDOUT: inst60000105: concrete_constant(inst60000105) -// CHECK:STDOUT: inst60000106: symbolic_constant600000AE -// CHECK:STDOUT: inst60000107: concrete_constant(inst60000049) -// CHECK:STDOUT: inst60000108: symbolic_constant600000BC -// CHECK:STDOUT: inst60000109: symbolic_constant600000BB -// CHECK:STDOUT: inst6000010A: symbolic_constant600000BA -// CHECK:STDOUT: inst6000010B: symbolic_constant600000BD -// CHECK:STDOUT: inst6000010C: symbolic_constant600000BE +// CHECK:STDOUT: inst60000105: symbolic_constant600000B5 +// CHECK:STDOUT: inst60000106: symbolic_constant600000B6 +// CHECK:STDOUT: inst60000107: concrete_constant(inst60000107) +// CHECK:STDOUT: inst60000108: concrete_constant(inst60000108) +// CHECK:STDOUT: inst60000109: concrete_constant(inst60000109) +// CHECK:STDOUT: inst6000010A: concrete_constant(inst6000010A) +// CHECK:STDOUT: inst6000010B: symbolic_constant600000C1 +// CHECK:STDOUT: inst6000010C: symbolic_constant600000C0 // CHECK:STDOUT: inst6000010D: symbolic_constant600000BF -// CHECK:STDOUT: inst6000010E: symbolic_constant600000C0 -// CHECK:STDOUT: inst6000010F: symbolic_constant600000C1 -// CHECK:STDOUT: inst60000110: symbolic_constant600000C2 -// CHECK:STDOUT: inst60000111: symbolic_constant600000C3 -// CHECK:STDOUT: inst60000112: symbolic_constant600000C4 -// CHECK:STDOUT: inst60000113: symbolic_constant600000C5 +// CHECK:STDOUT: inst6000010E: symbolic_constant600000C2 +// CHECK:STDOUT: inst6000010F: symbolic_constant600000C3 +// CHECK:STDOUT: inst60000110: symbolic_constant600000C4 +// CHECK:STDOUT: inst60000111: symbolic_constant600000C5 +// CHECK:STDOUT: inst60000112: symbolic_constant600000C6 +// CHECK:STDOUT: inst60000113: symbolic_constant600000C7 // CHECK:STDOUT: inst60000114: symbolic_constant600000C8 -// CHECK:STDOUT: inst60000115: symbolic_constant600000C6 -// CHECK:STDOUT: inst60000116: symbolic_constant600000C7 -// CHECK:STDOUT: inst60000117: symbolic_constant600000CA -// CHECK:STDOUT: inst60000118: concrete_constant(inst60000118) -// CHECK:STDOUT: inst60000119: concrete_constant(inst60000119) -// CHECK:STDOUT: inst6000011A: concrete_constant(inst6000011A) -// CHECK:STDOUT: inst6000011B: concrete_constant(inst6000011B) -// CHECK:STDOUT: inst6000011C: symbolic_constant600000BC -// CHECK:STDOUT: inst6000011D: symbolic_constant600000BB -// CHECK:STDOUT: inst6000011E: symbolic_constant600000BA -// CHECK:STDOUT: inst6000011F: symbolic_constant600000D3 -// CHECK:STDOUT: inst60000120: symbolic_constant600000D4 -// CHECK:STDOUT: inst60000121: symbolic_constant600000D5 -// CHECK:STDOUT: inst60000122: symbolic_constant600000D6 -// CHECK:STDOUT: inst60000123: symbolic_constant600000D7 -// CHECK:STDOUT: inst60000124: symbolic_constant600000D8 -// CHECK:STDOUT: inst60000125: symbolic_constant600000D9 -// CHECK:STDOUT: inst60000126: symbolic_constant600000DA -// CHECK:STDOUT: inst60000127: symbolic_constant600000DB -// CHECK:STDOUT: inst60000128: symbolic_constant600000DC -// CHECK:STDOUT: inst60000129: symbolic_constant600000DD -// CHECK:STDOUT: inst6000012A: symbolic_constant600000DE -// CHECK:STDOUT: inst6000012B: symbolic_constant600000E3 -// CHECK:STDOUT: inst6000012C: symbolic_constant600000EF -// CHECK:STDOUT: inst6000012D: symbolic_constant600000F1 -// CHECK:STDOUT: inst6000012E: symbolic_constant600000F2 -// CHECK:STDOUT: inst6000012F: symbolic_constant600000F3 -// CHECK:STDOUT: inst60000130: symbolic_constant600000F4 -// CHECK:STDOUT: inst60000131: symbolic_constant600000F5 -// CHECK:STDOUT: inst60000132: symbolic_constant600000F6 -// CHECK:STDOUT: inst60000133: symbolic_constant600000F7 -// CHECK:STDOUT: inst60000134: symbolic_constant600000F8 +// CHECK:STDOUT: inst60000115: symbolic_constant600000C9 +// CHECK:STDOUT: inst60000116: symbolic_constant600000CA +// CHECK:STDOUT: inst60000117: symbolic_constant600000CB +// CHECK:STDOUT: inst60000118: symbolic_constant600000CC +// CHECK:STDOUT: inst60000119: symbolic_constant600000CD +// CHECK:STDOUT: inst6000011A: symbolic_constant600000CF +// CHECK:STDOUT: inst6000011B: symbolic_constant600000D3 +// CHECK:STDOUT: inst6000011C: symbolic_constant600000DF +// CHECK:STDOUT: inst6000011D: symbolic_constant600000E1 +// CHECK:STDOUT: inst6000011E: symbolic_constant600000E2 +// CHECK:STDOUT: inst6000011F: symbolic_constant600000E3 +// CHECK:STDOUT: inst60000120: symbolic_constant600000E4 +// CHECK:STDOUT: inst60000121: symbolic_constant600000E5 +// CHECK:STDOUT: inst60000122: symbolic_constant600000E6 +// CHECK:STDOUT: inst60000123: symbolic_constant600000E7 +// CHECK:STDOUT: inst60000124: symbolic_constant600000E8 +// CHECK:STDOUT: inst60000125: symbolic_constant600000E9 +// CHECK:STDOUT: inst60000126: symbolic_constant600000EA +// CHECK:STDOUT: inst60000127: symbolic_constant600000EB +// CHECK:STDOUT: inst60000128: symbolic_constant600000EC +// CHECK:STDOUT: inst60000129: symbolic_constant600000ED +// CHECK:STDOUT: inst6000012A: symbolic_constant600000EE +// CHECK:STDOUT: inst6000012B: symbolic_constant600000EF +// CHECK:STDOUT: inst6000012C: symbolic_constant600000F0 +// CHECK:STDOUT: inst6000012D: concrete_constant(inst6000012D) +// CHECK:STDOUT: inst6000012E: concrete_constant(inst6000012E) +// CHECK:STDOUT: inst6000012F: concrete_constant(inst6000012F) +// CHECK:STDOUT: inst60000130: symbolic_constant600000AE +// CHECK:STDOUT: inst60000131: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000132: symbolic_constant600000C1 +// CHECK:STDOUT: inst60000133: symbolic_constant600000C0 +// CHECK:STDOUT: inst60000134: symbolic_constant600000BF // CHECK:STDOUT: inst60000135: symbolic_constant600000F9 // CHECK:STDOUT: inst60000136: symbolic_constant600000FA // CHECK:STDOUT: inst60000137: symbolic_constant600000FB @@ -1012,7 +1012,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst6000013A: symbolic_constant600000FE // CHECK:STDOUT: inst6000013B: symbolic_constant600000FF // CHECK:STDOUT: inst6000013C: symbolic_constant60000100 -// CHECK:STDOUT: inst6000013D: symbolic_constant60000102 +// CHECK:STDOUT: inst6000013D: symbolic_constant60000101 // CHECK:STDOUT: inst6000013E: symbolic_constant60000103 // CHECK:STDOUT: inst6000013F: symbolic_constant60000104 // CHECK:STDOUT: inst60000140: symbolic_constant60000106 @@ -1064,49 +1064,49 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant6000001F: {inst: inst60000066, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000066, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000022: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000023: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000024: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000025: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000026: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000028: {inst: inst60000066, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000071, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000072, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000073, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000030: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000031: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000032: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000035: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000036: {inst: inst6000007D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000037: {inst: inst6000007E, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000038: {inst: inst6000007F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000080, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst6000007F, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst6000007E, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst6000007D, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000081, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000082, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000044: {inst: inst6000007D, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000045: {inst: inst6000007E, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000046: {inst: inst6000007F, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst6000008B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000068, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000022: {inst: inst60000069, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000023: {inst: inst60000069, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000024: {inst: inst60000068, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000025: {inst: inst6000006A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000026: {inst: inst6000006A, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000028: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst6000006A, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000074, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000030: {inst: inst60000075, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000031: {inst: inst60000076, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000032: {inst: inst60000077, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000078, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000035: {inst: inst60000076, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000036: {inst: inst60000075, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000038: {inst: inst60000079, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst6000007A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000075, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000076, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000066, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000069, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000068, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst60000069, generic: generic60000002, index: generic_inst_in_def1, kind: checked} // CHECK:STDOUT: symbolic_constant6000004C: {inst: inst6000001A, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant6000004D: {inst: inst600000A0, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant6000004E: {inst: inst600000A0, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} @@ -1137,161 +1137,161 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} // CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000C5, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant60000069: {inst: inst600000C5, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006B: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000C7, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst600000C7, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000070: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000072: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000073: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000075: {inst: inst600000C7, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000076: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000077: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000078: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000C5, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000D6, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000D7, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000D6, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst600000C7, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006B: {inst: inst600000C8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000C8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000C7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst600000CA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000CB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000CB, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000073: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000074: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000075: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000076: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000077: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000078: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000079: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000CB, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} // CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000D8, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000083: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000084: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000085: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000086: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000088: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000089: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst600000E5, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000E6, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst600000E7, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000E8, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant60000090: {inst: inst600000E7, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant60000091: {inst: inst600000E6, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant60000092: {inst: inst600000E5, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000093: {inst: inst600000E9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000094: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000095: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000096: {inst: inst6000007F, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000097: {inst: inst6000007E, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000098: {inst: inst6000007D, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000099: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000EA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst6000007D, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst6000007E, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst6000007F, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst600000E5, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst600000E6, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst600000E7, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000D6, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000F8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000D9, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000DA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000DB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant60000083: {inst: inst600000DC, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000084: {inst: inst600000DA, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000DD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000088: {inst: inst600000DD, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000089: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst60000076, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst60000075, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst60000074, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst60000079, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000DE, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000090: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000091: {inst: inst60000079, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000092: {inst: inst60000074, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000093: {inst: inst60000075, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000094: {inst: inst60000076, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000095: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000DD, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000DA, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000CA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst600000CA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000C5, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000C8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000C7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000C8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} // CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000FB, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000FC, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000FD, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} // CHECK:STDOUT: symbolic_constant600000AF: {inst: inst60000100, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant600000B0: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000102, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst60000102, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst60000103, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst60000103, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000105, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000106, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst60000106, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} // CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000115, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000116, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst60000127, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst60000128, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000129, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst6000012A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst60000129, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst60000128, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000127, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst6000012B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst600000E8, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst600000E7, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst600000E6, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst600000E5, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst6000007F, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst6000007E, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst6000007D, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst6000012C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst6000007D, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst6000007E, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst6000007F, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst600000E5, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst600000E6, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst600000E7, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst600000E8, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000127, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst60000128, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst60000129, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant60000100: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant60000101: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000102: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000103: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000104: {inst: inst6000013F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000106, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst60000116, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst60000118, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst60000119, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst60000119, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst6000011A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst60000116, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst6000011B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst6000011B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000DB, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst600000DA, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst600000D9, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst600000D8, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst600000DD, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst60000076, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst60000075, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000074, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst60000079, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000011C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000079, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst60000074, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000075, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst60000076, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst600000DD, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst600000D8, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst600000D9, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst600000DA, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst600000DB, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst6000011B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst60000116, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst60000119, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst60000105, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst60000105, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000100: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000101: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000102: {inst: inst60000103, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000103: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000104: {inst: inst60000103, generic: generic60000008, index: generic_inst_in_def1, kind: checked} // CHECK:STDOUT: symbolic_constant60000105: {inst: inst600000A0, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant60000106: {inst: inst60000140, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant60000107: {inst: inst60000140, generic: generic60000000, index: generic_inst_in_def2, kind: checked} @@ -1325,16 +1325,16 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 14: inst60000060 // CHECK:STDOUT: 15: inst60000064 // CHECK:STDOUT: 16: inst60000065 -// CHECK:STDOUT: 17: inst60000068 -// CHECK:STDOUT: 18: inst60000069 -// CHECK:STDOUT: 19: inst6000006A -// CHECK:STDOUT: 20: inst6000006B -// CHECK:STDOUT: 21: inst60000070 -// CHECK:STDOUT: 22: inst60000074 -// CHECK:STDOUT: 23: inst60000075 -// CHECK:STDOUT: 24: inst60000076 -// CHECK:STDOUT: 25: inst60000077 -// CHECK:STDOUT: 26: inst60000078 +// CHECK:STDOUT: 17: inst60000067 +// CHECK:STDOUT: 18: inst6000006B +// CHECK:STDOUT: 19: inst6000006C +// CHECK:STDOUT: 20: inst6000006D +// CHECK:STDOUT: 21: inst6000006E +// CHECK:STDOUT: 22: inst6000006F +// CHECK:STDOUT: 23: inst60000082 +// CHECK:STDOUT: 24: inst60000083 +// CHECK:STDOUT: 25: inst60000084 +// CHECK:STDOUT: 26: inst60000085 // CHECK:STDOUT: 27: inst6000008C // CHECK:STDOUT: 28: inst6000008D // CHECK:STDOUT: 29: inst6000008E @@ -1377,39 +1377,39 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 66: inst600000BF // CHECK:STDOUT: 67: inst600000C3 // CHECK:STDOUT: 68: inst600000C4 -// CHECK:STDOUT: 69: inst600000C8 -// CHECK:STDOUT: 70: inst600000C9 -// CHECK:STDOUT: 71: inst600000CA -// CHECK:STDOUT: 72: inst600000CB -// CHECK:STDOUT: 73: inst600000CC -// CHECK:STDOUT: 74: inst600000CD -// CHECK:STDOUT: 75: inst600000D5 -// CHECK:STDOUT: 76: inst600000D9 -// CHECK:STDOUT: 77: inst600000DA -// CHECK:STDOUT: 78: inst600000DB -// CHECK:STDOUT: 79: inst600000DC -// CHECK:STDOUT: 80: inst600000DD -// CHECK:STDOUT: 81: inst600000DE +// CHECK:STDOUT: 69: inst600000C6 +// CHECK:STDOUT: 70: inst600000CC +// CHECK:STDOUT: 71: inst600000CD +// CHECK:STDOUT: 72: inst600000CE +// CHECK:STDOUT: 73: inst600000CF +// CHECK:STDOUT: 74: inst600000D0 +// CHECK:STDOUT: 75: inst600000D1 +// CHECK:STDOUT: 76: inst600000EA +// CHECK:STDOUT: 77: inst600000EB +// CHECK:STDOUT: 78: inst600000EC +// CHECK:STDOUT: 79: inst600000ED +// CHECK:STDOUT: 80: inst600000EE +// CHECK:STDOUT: 81: inst600000EF // CHECK:STDOUT: 82: inst600000F9 // CHECK:STDOUT: 83: inst600000FA // CHECK:STDOUT: 84: inst600000FE // CHECK:STDOUT: 85: inst600000FF -// CHECK:STDOUT: 86: inst60000103 -// CHECK:STDOUT: 87: inst60000104 -// CHECK:STDOUT: 88: inst60000105 -// CHECK:STDOUT: 89: inst60000106 -// CHECK:STDOUT: 90: inst60000107 -// CHECK:STDOUT: 91: inst60000108 -// CHECK:STDOUT: 92: inst60000109 -// CHECK:STDOUT: 93: inst6000010A -// CHECK:STDOUT: 94: inst60000114 -// CHECK:STDOUT: 95: inst60000118 -// CHECK:STDOUT: 96: inst60000119 -// CHECK:STDOUT: 97: inst6000011A -// CHECK:STDOUT: 98: inst6000011B -// CHECK:STDOUT: 99: inst6000011C -// CHECK:STDOUT: 100: inst6000011D -// CHECK:STDOUT: 101: inst6000011E +// CHECK:STDOUT: 86: inst60000101 +// CHECK:STDOUT: 87: inst60000107 +// CHECK:STDOUT: 88: inst60000108 +// CHECK:STDOUT: 89: inst60000109 +// CHECK:STDOUT: 90: inst6000010A +// CHECK:STDOUT: 91: inst6000010B +// CHECK:STDOUT: 92: inst6000010C +// CHECK:STDOUT: 93: inst6000010D +// CHECK:STDOUT: 94: inst6000012D +// CHECK:STDOUT: 95: inst6000012E +// CHECK:STDOUT: 96: inst6000012F +// CHECK:STDOUT: 97: inst60000130 +// CHECK:STDOUT: 98: inst60000131 +// CHECK:STDOUT: 99: inst60000132 +// CHECK:STDOUT: 100: inst60000133 +// CHECK:STDOUT: 101: inst60000134 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: // CHECK:STDOUT: 0: inst60000011 @@ -1523,90 +1523,90 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst_block6000001F: // CHECK:STDOUT: 0: inst60000061 // CHECK:STDOUT: inst_block60000020: -// CHECK:STDOUT: 0: inst60000068 +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst60000063 +// CHECK:STDOUT: 3: inst60000066 // CHECK:STDOUT: inst_block60000021: -// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 0: inst60000068 +// CHECK:STDOUT: 1: inst60000069 // CHECK:STDOUT: inst_block60000022: -// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: 0: inst6000006E // CHECK:STDOUT: inst_block60000023: -// CHECK:STDOUT: 0: inst6000006C -// CHECK:STDOUT: 1: inst6000006D -// CHECK:STDOUT: 2: inst6000006E -// CHECK:STDOUT: 3: inst6000006F +// CHECK:STDOUT: 0: inst6000006F // CHECK:STDOUT: inst_block60000024: -// CHECK:STDOUT: 0: inst60000077 +// CHECK:STDOUT: 0: inst60000070 +// CHECK:STDOUT: 1: inst60000071 +// CHECK:STDOUT: 2: inst60000072 +// CHECK:STDOUT: 3: inst60000073 // CHECK:STDOUT: inst_block60000025: -// CHECK:STDOUT: 0: inst60000078 +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst60000078 // CHECK:STDOUT: inst_block60000026: -// CHECK:STDOUT: 0: inst60000079 -// CHECK:STDOUT: 1: inst6000007A -// CHECK:STDOUT: 2: inst6000007B -// CHECK:STDOUT: 3: inst6000007C +// CHECK:STDOUT: 0: inst60000070 // CHECK:STDOUT: inst_block60000027: -// CHECK:STDOUT: 0: inst60000079 +// CHECK:STDOUT: 0: inst6000007B +// CHECK:STDOUT: 1: inst6000007C +// CHECK:STDOUT: 2: inst6000007D +// CHECK:STDOUT: 3: inst6000007E +// CHECK:STDOUT: 4: inst6000007F +// CHECK:STDOUT: 5: inst60000080 // CHECK:STDOUT: inst_block60000028: -// CHECK:STDOUT: 0: inst60000083 -// CHECK:STDOUT: 1: inst60000084 -// CHECK:STDOUT: 2: inst60000085 -// CHECK:STDOUT: 3: inst60000086 -// CHECK:STDOUT: 4: inst60000087 -// CHECK:STDOUT: 5: inst60000088 -// CHECK:STDOUT: inst_block60000029: -// CHECK:STDOUT: 0: inst6000006C -// CHECK:STDOUT: inst_block6000002A: -// CHECK:STDOUT: 0: inst60000089 -// CHECK:STDOUT: 1: inst6000008A -// CHECK:STDOUT: inst_block6000002B: // CHECK:STDOUT: 0: inst60000061 // CHECK:STDOUT: 1: inst60000062 // CHECK:STDOUT: 2: inst60000063 -// CHECK:STDOUT: 3: inst60000066 +// CHECK:STDOUT: 3: inst6000006A +// CHECK:STDOUT: inst_block60000029: +// CHECK:STDOUT: 0: inst60000082 +// CHECK:STDOUT: inst_block6000002A: +// CHECK:STDOUT: 0: inst60000085 +// CHECK:STDOUT: inst_block6000002B: +// CHECK:STDOUT: 0: inst60000086 // CHECK:STDOUT: inst_block6000002C: -// CHECK:STDOUT: 0: inst60000071 -// CHECK:STDOUT: 1: inst60000072 +// CHECK:STDOUT: 0: inst60000086 +// CHECK:STDOUT: 1: inst60000087 +// CHECK:STDOUT: 2: inst60000088 +// CHECK:STDOUT: 3: inst60000089 // CHECK:STDOUT: inst_block6000002D: -// CHECK:STDOUT: 0: inst60000061 -// CHECK:STDOUT: 1: inst60000062 -// CHECK:STDOUT: 2: inst60000063 -// CHECK:STDOUT: 3: inst60000073 +// CHECK:STDOUT: 0: inst60000086 // CHECK:STDOUT: inst_block6000002E: -// CHECK:STDOUT: 0: inst60000061 -// CHECK:STDOUT: 1: inst60000062 -// CHECK:STDOUT: 2: inst6000008B +// CHECK:STDOUT: 0: inst6000008A +// CHECK:STDOUT: 1: inst6000008B // CHECK:STDOUT: inst_block6000002F: // CHECK:STDOUT: 0: inst6000009E // CHECK:STDOUT: inst_block60000030: -// CHECK:STDOUT: 0: inst600000A1 +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst600000A0 // CHECK:STDOUT: inst_block60000031: -// CHECK:STDOUT: 0: inst600000A4 +// CHECK:STDOUT: 0: inst600000A1 // CHECK:STDOUT: inst_block60000032: -// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: 0: inst600000A4 // CHECK:STDOUT: inst_block60000033: // CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: inst_block60000034: +// CHECK:STDOUT: 0: inst600000A5 // CHECK:STDOUT: 1: inst600000A6 // CHECK:STDOUT: 2: inst600000A7 -// CHECK:STDOUT: inst_block60000034: -// CHECK:STDOUT: 0: inst600000AE // CHECK:STDOUT: inst_block60000035: -// CHECK:STDOUT: 0: inst600000AF +// CHECK:STDOUT: 0: inst600000AE // CHECK:STDOUT: inst_block60000036: +// CHECK:STDOUT: 0: inst600000AF +// CHECK:STDOUT: inst_block60000037: // CHECK:STDOUT: 0: inst600000B0 // CHECK:STDOUT: 1: inst600000B1 // CHECK:STDOUT: 2: inst600000B2 -// CHECK:STDOUT: inst_block60000037: -// CHECK:STDOUT: 0: inst600000A5 // CHECK:STDOUT: inst_block60000038: -// CHECK:STDOUT: 0: inst600000B3 -// CHECK:STDOUT: 1: inst600000B4 -// CHECK:STDOUT: 2: inst600000B5 -// CHECK:STDOUT: inst_block60000039: -// CHECK:STDOUT: 0: inst60000014 -// CHECK:STDOUT: 1: inst6000001A -// CHECK:STDOUT: 2: inst600000A0 -// CHECK:STDOUT: inst_block6000003A: // CHECK:STDOUT: 0: inst60000014 // CHECK:STDOUT: 1: inst6000001A // CHECK:STDOUT: 2: inst6000001D +// CHECK:STDOUT: inst_block60000039: +// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: inst_block6000003A: +// CHECK:STDOUT: 0: inst600000B3 +// CHECK:STDOUT: 1: inst600000B4 +// CHECK:STDOUT: 2: inst600000B5 // CHECK:STDOUT: inst_block6000003B: // CHECK:STDOUT: 0: inst60000062 // CHECK:STDOUT: 1: inst600000C1 @@ -1619,89 +1619,89 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst60000049 // CHECK:STDOUT: 1: inst60000049 // CHECK:STDOUT: inst_block6000003F: -// CHECK:STDOUT: 0: inst600000C9 -// CHECK:STDOUT: 1: inst600000C8 +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: 2: inst600000CA +// CHECK:STDOUT: 3: inst60000062 +// CHECK:STDOUT: 4: inst600000C1 +// CHECK:STDOUT: 5: inst600000C2 +// CHECK:STDOUT: 6: inst600000C5 // CHECK:STDOUT: inst_block60000040: -// CHECK:STDOUT: 0: inst600000CC -// CHECK:STDOUT: 1: inst600000CD +// CHECK:STDOUT: 0: inst600000C7 +// CHECK:STDOUT: 1: inst600000C8 // CHECK:STDOUT: inst_block60000041: -// CHECK:STDOUT: 0: inst600000CE -// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: 0: inst600000CF // CHECK:STDOUT: inst_block60000042: -// CHECK:STDOUT: 0: inst600000D1 -// CHECK:STDOUT: 1: inst600000D2 +// CHECK:STDOUT: 0: inst600000D0 +// CHECK:STDOUT: 1: inst600000D1 // CHECK:STDOUT: inst_block60000043: -// CHECK:STDOUT: 0: inst600000CE -// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: 0: inst600000D3 +// CHECK:STDOUT: 1: inst600000D5 // CHECK:STDOUT: inst_block60000044: -// CHECK:STDOUT: 0: inst600000CE -// CHECK:STDOUT: 1: inst600000CF -// CHECK:STDOUT: 2: inst600000D0 -// CHECK:STDOUT: 3: inst600000D1 -// CHECK:STDOUT: 4: inst600000D2 -// CHECK:STDOUT: 5: inst600000D3 -// CHECK:STDOUT: 6: inst600000D4 +// CHECK:STDOUT: 0: inst600000D2 +// CHECK:STDOUT: 1: inst600000D3 +// CHECK:STDOUT: 2: inst600000D4 +// CHECK:STDOUT: 3: inst600000D5 +// CHECK:STDOUT: 4: inst600000D6 +// CHECK:STDOUT: 5: inst600000D7 // CHECK:STDOUT: inst_block60000045: -// CHECK:STDOUT: 0: inst600000DC +// CHECK:STDOUT: 0: inst600000C0 // CHECK:STDOUT: inst_block60000046: -// CHECK:STDOUT: 0: inst600000DD -// CHECK:STDOUT: 1: inst600000DE +// CHECK:STDOUT: 0: inst600000C0 +// CHECK:STDOUT: 1: inst600000C1 +// CHECK:STDOUT: 2: inst600000DC // CHECK:STDOUT: inst_block60000047: -// CHECK:STDOUT: 0: inst600000E0 -// CHECK:STDOUT: 1: inst600000E2 +// CHECK:STDOUT: 0: inst600000D2 // CHECK:STDOUT: inst_block60000048: +// CHECK:STDOUT: 0: inst600000D4 +// CHECK:STDOUT: inst_block60000049: // CHECK:STDOUT: 0: inst600000DF // CHECK:STDOUT: 1: inst600000E0 // CHECK:STDOUT: 2: inst600000E1 // CHECK:STDOUT: 3: inst600000E2 // CHECK:STDOUT: 4: inst600000E3 // CHECK:STDOUT: 5: inst600000E4 -// CHECK:STDOUT: inst_block60000049: -// CHECK:STDOUT: 0: inst600000C0 +// CHECK:STDOUT: 6: inst600000E5 +// CHECK:STDOUT: 7: inst600000E6 +// CHECK:STDOUT: 8: inst600000E7 +// CHECK:STDOUT: 9: inst600000E8 +// CHECK:STDOUT: 10: inst600000E9 // CHECK:STDOUT: inst_block6000004A: -// CHECK:STDOUT: 0: inst600000DF +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst600000C0 +// CHECK:STDOUT: 3: inst600000C1 +// CHECK:STDOUT: 4: inst600000C2 +// CHECK:STDOUT: 5: inst600000CB // CHECK:STDOUT: inst_block6000004B: -// CHECK:STDOUT: 0: inst600000E1 -// CHECK:STDOUT: inst_block6000004C: // CHECK:STDOUT: 0: inst600000EB -// CHECK:STDOUT: 1: inst600000EC -// CHECK:STDOUT: 2: inst600000ED -// CHECK:STDOUT: 3: inst600000EE -// CHECK:STDOUT: 4: inst600000EF -// CHECK:STDOUT: 5: inst600000F0 -// CHECK:STDOUT: 6: inst600000F1 -// CHECK:STDOUT: 7: inst600000F2 -// CHECK:STDOUT: 8: inst600000F3 -// CHECK:STDOUT: 9: inst600000F4 -// CHECK:STDOUT: 10: inst600000F5 +// CHECK:STDOUT: 1: inst600000EA +// CHECK:STDOUT: inst_block6000004C: +// CHECK:STDOUT: 0: inst600000EE +// CHECK:STDOUT: 1: inst600000EF // CHECK:STDOUT: inst_block6000004D: -// CHECK:STDOUT: 0: inst600000CE -// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: 0: inst600000F0 +// CHECK:STDOUT: 1: inst600000F1 // CHECK:STDOUT: inst_block6000004E: -// CHECK:STDOUT: 0: inst600000F6 -// CHECK:STDOUT: 1: inst600000F7 +// CHECK:STDOUT: 0: inst600000F3 +// CHECK:STDOUT: 1: inst600000F4 // CHECK:STDOUT: inst_block6000004F: -// CHECK:STDOUT: 0: inst60000061 -// CHECK:STDOUT: 1: inst600000C0 -// CHECK:STDOUT: 2: inst600000C7 -// CHECK:STDOUT: 3: inst60000062 -// CHECK:STDOUT: 4: inst600000C1 -// CHECK:STDOUT: 5: inst600000C2 -// CHECK:STDOUT: 6: inst600000C5 +// CHECK:STDOUT: 0: inst600000F0 +// CHECK:STDOUT: 1: inst600000F1 // CHECK:STDOUT: inst_block60000050: -// CHECK:STDOUT: 0: inst600000D6 -// CHECK:STDOUT: 1: inst600000D7 +// CHECK:STDOUT: 0: inst600000F0 +// CHECK:STDOUT: 1: inst600000F1 +// CHECK:STDOUT: 2: inst600000F2 +// CHECK:STDOUT: 3: inst600000F3 +// CHECK:STDOUT: 4: inst600000F4 +// CHECK:STDOUT: 5: inst600000F5 +// CHECK:STDOUT: 6: inst600000F6 // CHECK:STDOUT: inst_block60000051: -// CHECK:STDOUT: 0: inst60000061 -// CHECK:STDOUT: 1: inst60000062 -// CHECK:STDOUT: 2: inst600000C0 -// CHECK:STDOUT: 3: inst600000C1 -// CHECK:STDOUT: 4: inst600000C2 -// CHECK:STDOUT: 5: inst600000D8 +// CHECK:STDOUT: 0: inst600000F0 +// CHECK:STDOUT: 1: inst600000F1 // CHECK:STDOUT: inst_block60000052: -// CHECK:STDOUT: 0: inst600000C0 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000F8 +// CHECK:STDOUT: 0: inst600000F7 +// CHECK:STDOUT: 1: inst600000F8 // CHECK:STDOUT: inst_block60000053: // CHECK:STDOUT: 0: inst60000062 // CHECK:STDOUT: 1: inst600000C1 @@ -1717,100 +1717,67 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 1: inst60000049 // CHECK:STDOUT: 2: inst60000049 // CHECK:STDOUT: inst_block60000057: -// CHECK:STDOUT: 0: inst60000105 -// CHECK:STDOUT: 1: inst60000104 -// CHECK:STDOUT: 2: inst60000103 +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: 2: inst600000FB +// CHECK:STDOUT: 3: inst60000105 +// CHECK:STDOUT: 4: inst60000062 +// CHECK:STDOUT: 5: inst600000C1 +// CHECK:STDOUT: 6: inst600000FC +// CHECK:STDOUT: 7: inst600000FD +// CHECK:STDOUT: 8: inst60000100 // CHECK:STDOUT: inst_block60000058: -// CHECK:STDOUT: 0: inst60000108 -// CHECK:STDOUT: 1: inst60000109 -// CHECK:STDOUT: 2: inst6000010A +// CHECK:STDOUT: 0: inst60000102 +// CHECK:STDOUT: 1: inst60000103 // CHECK:STDOUT: inst_block60000059: -// CHECK:STDOUT: 0: inst6000010B -// CHECK:STDOUT: 1: inst6000010C -// CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: 0: inst6000010A // CHECK:STDOUT: inst_block6000005A: -// CHECK:STDOUT: 0: inst6000010F -// CHECK:STDOUT: 1: inst60000110 -// CHECK:STDOUT: 2: inst60000111 -// CHECK:STDOUT: inst_block6000005B: // CHECK:STDOUT: 0: inst6000010B // CHECK:STDOUT: 1: inst6000010C // CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: inst_block6000005B: +// CHECK:STDOUT: 0: inst6000010F +// CHECK:STDOUT: 1: inst60000111 +// CHECK:STDOUT: 2: inst60000113 // CHECK:STDOUT: inst_block6000005C: -// CHECK:STDOUT: 0: inst6000010B -// CHECK:STDOUT: 1: inst6000010C -// CHECK:STDOUT: 2: inst6000010D -// CHECK:STDOUT: 3: inst6000010E -// CHECK:STDOUT: 4: inst6000010F -// CHECK:STDOUT: 5: inst60000110 -// CHECK:STDOUT: 6: inst60000111 -// CHECK:STDOUT: 7: inst60000112 -// CHECK:STDOUT: 8: inst60000113 +// CHECK:STDOUT: 0: inst6000010E +// CHECK:STDOUT: 1: inst6000010F +// CHECK:STDOUT: 2: inst60000110 +// CHECK:STDOUT: 3: inst60000111 +// CHECK:STDOUT: 4: inst60000112 +// CHECK:STDOUT: 5: inst60000113 +// CHECK:STDOUT: 6: inst60000114 +// CHECK:STDOUT: 7: inst60000115 // CHECK:STDOUT: inst_block6000005D: -// CHECK:STDOUT: 0: inst6000011B +// CHECK:STDOUT: 0: inst600000FB // CHECK:STDOUT: inst_block6000005E: -// CHECK:STDOUT: 0: inst6000011C -// CHECK:STDOUT: 1: inst6000011D -// CHECK:STDOUT: 2: inst6000011E +// CHECK:STDOUT: 0: inst600000FB +// CHECK:STDOUT: 1: inst600000FC +// CHECK:STDOUT: 2: inst6000011A // CHECK:STDOUT: inst_block6000005F: -// CHECK:STDOUT: 0: inst60000120 -// CHECK:STDOUT: 1: inst60000122 -// CHECK:STDOUT: 2: inst60000124 +// CHECK:STDOUT: 0: inst6000010E // CHECK:STDOUT: inst_block60000060: -// CHECK:STDOUT: 0: inst6000011F -// CHECK:STDOUT: 1: inst60000120 -// CHECK:STDOUT: 2: inst60000121 -// CHECK:STDOUT: 3: inst60000122 -// CHECK:STDOUT: 4: inst60000123 -// CHECK:STDOUT: 5: inst60000124 -// CHECK:STDOUT: 6: inst60000125 -// CHECK:STDOUT: 7: inst60000126 +// CHECK:STDOUT: 0: inst60000110 // CHECK:STDOUT: inst_block60000061: -// CHECK:STDOUT: 0: inst600000FB +// CHECK:STDOUT: 0: inst60000112 // CHECK:STDOUT: inst_block60000062: -// CHECK:STDOUT: 0: inst6000011F +// CHECK:STDOUT: 0: inst6000011D +// CHECK:STDOUT: 1: inst6000011E +// CHECK:STDOUT: 2: inst6000011F +// CHECK:STDOUT: 3: inst60000120 +// CHECK:STDOUT: 4: inst60000121 +// CHECK:STDOUT: 5: inst60000122 +// CHECK:STDOUT: 6: inst60000123 +// CHECK:STDOUT: 7: inst60000124 +// CHECK:STDOUT: 8: inst60000125 +// CHECK:STDOUT: 9: inst60000126 +// CHECK:STDOUT: 10: inst60000127 +// CHECK:STDOUT: 11: inst60000128 +// CHECK:STDOUT: 12: inst60000129 +// CHECK:STDOUT: 13: inst6000012A +// CHECK:STDOUT: 14: inst6000012B +// CHECK:STDOUT: 15: inst6000012C // CHECK:STDOUT: inst_block60000063: -// CHECK:STDOUT: 0: inst60000121 -// CHECK:STDOUT: inst_block60000064: -// CHECK:STDOUT: 0: inst60000123 -// CHECK:STDOUT: inst_block60000065: -// CHECK:STDOUT: 0: inst6000012D -// CHECK:STDOUT: 1: inst6000012E -// CHECK:STDOUT: 2: inst6000012F -// CHECK:STDOUT: 3: inst60000130 -// CHECK:STDOUT: 4: inst60000131 -// CHECK:STDOUT: 5: inst60000132 -// CHECK:STDOUT: 6: inst60000133 -// CHECK:STDOUT: 7: inst60000134 -// CHECK:STDOUT: 8: inst60000135 -// CHECK:STDOUT: 9: inst60000136 -// CHECK:STDOUT: 10: inst60000137 -// CHECK:STDOUT: 11: inst60000138 -// CHECK:STDOUT: 12: inst60000139 -// CHECK:STDOUT: 13: inst6000013A -// CHECK:STDOUT: 14: inst6000013B -// CHECK:STDOUT: 15: inst6000013C -// CHECK:STDOUT: inst_block60000066: -// CHECK:STDOUT: 0: inst6000010B -// CHECK:STDOUT: 1: inst6000010C -// CHECK:STDOUT: 2: inst6000010D -// CHECK:STDOUT: inst_block60000067: -// CHECK:STDOUT: 0: inst6000013D -// CHECK:STDOUT: 1: inst6000013E -// CHECK:STDOUT: inst_block60000068: -// CHECK:STDOUT: 0: inst60000061 -// CHECK:STDOUT: 1: inst600000C0 -// CHECK:STDOUT: 2: inst600000FB -// CHECK:STDOUT: 3: inst60000102 -// CHECK:STDOUT: 4: inst60000062 -// CHECK:STDOUT: 5: inst600000C1 -// CHECK:STDOUT: 6: inst600000FC -// CHECK:STDOUT: 7: inst600000FD -// CHECK:STDOUT: 8: inst60000100 -// CHECK:STDOUT: inst_block60000069: -// CHECK:STDOUT: 0: inst60000115 -// CHECK:STDOUT: 1: inst60000116 -// CHECK:STDOUT: inst_block6000006A: // CHECK:STDOUT: 0: inst60000061 // CHECK:STDOUT: 1: inst60000062 // CHECK:STDOUT: 2: inst600000C0 @@ -1818,11 +1785,44 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 4: inst600000FB // CHECK:STDOUT: 5: inst600000FC // CHECK:STDOUT: 6: inst600000FD -// CHECK:STDOUT: 7: inst60000117 +// CHECK:STDOUT: 7: inst60000106 +// CHECK:STDOUT: inst_block60000064: +// CHECK:STDOUT: 0: inst6000012F +// CHECK:STDOUT: 1: inst6000012E +// CHECK:STDOUT: 2: inst6000012D +// CHECK:STDOUT: inst_block60000065: +// CHECK:STDOUT: 0: inst60000132 +// CHECK:STDOUT: 1: inst60000133 +// CHECK:STDOUT: 2: inst60000134 +// CHECK:STDOUT: inst_block60000066: +// CHECK:STDOUT: 0: inst60000135 +// CHECK:STDOUT: 1: inst60000136 +// CHECK:STDOUT: 2: inst60000137 +// CHECK:STDOUT: inst_block60000067: +// CHECK:STDOUT: 0: inst60000139 +// CHECK:STDOUT: 1: inst6000013A +// CHECK:STDOUT: 2: inst6000013B +// CHECK:STDOUT: inst_block60000068: +// CHECK:STDOUT: 0: inst60000135 +// CHECK:STDOUT: 1: inst60000136 +// CHECK:STDOUT: 2: inst60000137 +// CHECK:STDOUT: inst_block60000069: +// CHECK:STDOUT: 0: inst60000135 +// CHECK:STDOUT: 1: inst60000136 +// CHECK:STDOUT: 2: inst60000137 +// CHECK:STDOUT: 3: inst60000138 +// CHECK:STDOUT: 4: inst60000139 +// CHECK:STDOUT: 5: inst6000013A +// CHECK:STDOUT: 6: inst6000013B +// CHECK:STDOUT: 7: inst6000013C +// CHECK:STDOUT: 8: inst6000013D +// CHECK:STDOUT: inst_block6000006A: +// CHECK:STDOUT: 0: inst60000135 +// CHECK:STDOUT: 1: inst60000136 +// CHECK:STDOUT: 2: inst60000137 // CHECK:STDOUT: inst_block6000006B: -// CHECK:STDOUT: 0: inst600000FB -// CHECK:STDOUT: 1: inst600000FC -// CHECK:STDOUT: 2: inst6000013F +// CHECK:STDOUT: 0: inst6000013E +// CHECK:STDOUT: 1: inst6000013F // CHECK:STDOUT: inst_block6000006C: // CHECK:STDOUT: 0: inst600000A9 // CHECK:STDOUT: 1: inst600000AA diff --git a/toolchain/check/testdata/class/generic/adapt.carbon b/toolchain/check/testdata/class/generic/adapt.carbon index 354d48f4415c8..247efb7f31e0a 100644 --- a/toolchain/check/testdata/class/generic/adapt.carbon +++ b/toolchain/check/testdata/class/generic/adapt.carbon @@ -292,6 +292,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] +// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] +// CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %C.type: type = generic_class_type @C [concrete] // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %T.d9f: type = symbolic_binding T, 0 [symbolic] @@ -303,8 +305,6 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.239: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %struct_type.x.767: type = struct_type {.x: %i32} [concrete] // CHECK:STDOUT: %complete_type.c07: = complete_type_witness %struct_type.x.767 [concrete] -// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %C.elem.ed6: type = unbound_element_type %C.239, %i32 [concrete] // CHECK:STDOUT: %pattern_type.27e: type = pattern_type %Adapter [concrete] // CHECK:STDOUT: %pattern_type.501: type = pattern_type %i32 [concrete] @@ -683,6 +683,8 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] +// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] +// CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %struct_type.x.200: type = struct_type {.x: %T} [symbolic] // CHECK:STDOUT: %complete_type.9d1: = complete_type_witness %struct_type.x.200 [symbolic] @@ -692,8 +694,6 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 { // CHECK:STDOUT: %C.239: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %struct_type.x.767: type = struct_type {.x: %i32} [concrete] // CHECK:STDOUT: %complete_type.c07: = complete_type_witness %struct_type.x.767 [concrete] -// CHECK:STDOUT: %i32.builtin: type = int_type signed, %int_32 [concrete] -// CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %C.elem.ed6: type = unbound_element_type %C.239, %i32 [concrete] // CHECK:STDOUT: %pattern_type.27e: type = pattern_type %Adapter [concrete] // CHECK:STDOUT: %pattern_type.501: type = pattern_type %i32 [concrete] diff --git a/toolchain/check/testdata/class/generic/base_is_generic.carbon b/toolchain/check/testdata/class/generic/base_is_generic.carbon index 7426c82d9ccec..02cb84389c1d9 100644 --- a/toolchain/check/testdata/class/generic/base_is_generic.carbon +++ b/toolchain/check/testdata/class/generic/base_is_generic.carbon @@ -286,11 +286,11 @@ fn H() { // CHECK:STDOUT: %Base.elem.e9c: type = unbound_element_type %Base.8f3, %T.d9f [symbolic] // CHECK:STDOUT: %require_complete.4b7: = require_complete_type %T.d9f [symbolic] // CHECK:STDOUT: %Base.7a8: type = class_type @Base, @Base(%Param) [concrete] -// CHECK:STDOUT: %struct_type.base.8bc: type = struct_type {.base: %Base.7a8} [concrete] -// CHECK:STDOUT: %complete_type.b07: = complete_type_witness %struct_type.base.8bc [concrete] -// CHECK:STDOUT: %Base.elem.d1f: type = unbound_element_type %Base.7a8, %Param [concrete] // CHECK:STDOUT: %struct_type.x.975: type = struct_type {.x: %Param} [concrete] // CHECK:STDOUT: %complete_type.db3: = complete_type_witness %struct_type.x.975 [concrete] +// CHECK:STDOUT: %Base.elem.d1f: type = unbound_element_type %Base.7a8, %Param [concrete] +// CHECK:STDOUT: %struct_type.base.8bc: type = struct_type {.base: %Base.7a8} [concrete] +// CHECK:STDOUT: %complete_type.b07: = complete_type_witness %struct_type.base.8bc [concrete] // CHECK:STDOUT: %pattern_type.fb9: type = pattern_type %Derived [concrete] // CHECK:STDOUT: %pattern_type.501: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %ImportedDoubleFieldAccess.type: type = fn_type @ImportedDoubleFieldAccess [concrete] @@ -801,13 +801,13 @@ fn H() { // CHECK:STDOUT: %X.G.specific_fn.f7a: = specific_function %X.G.045884.1, @X.G(%U) [symbolic] // CHECK:STDOUT: %require_complete.4b7: = require_complete_type %U [symbolic] // CHECK:STDOUT: %X.fa229d.2: type = class_type @X, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.type.89b800.2: type = fn_type @X.G, @X(%T) [symbolic] +// CHECK:STDOUT: %X.G.045884.2: %X.G.type.89b800.2 = struct_value () [symbolic] // CHECK:STDOUT: %C.3f0: type = class_type @C, @C(%T) [symbolic] // CHECK:STDOUT: %C.elem.b96: type = unbound_element_type %C.3f0, %X.fa229d.2 [symbolic] // CHECK:STDOUT: %struct_type.base.b13: type = struct_type {.base: %X.fa229d.2} [symbolic] // CHECK:STDOUT: %complete_type.b1f: = complete_type_witness %struct_type.base.b13 [symbolic] // CHECK:STDOUT: %require_complete.6fb: = require_complete_type %X.fa229d.2 [symbolic] -// CHECK:STDOUT: %X.G.type.89b800.2: type = fn_type @X.G, @X(%T) [symbolic] -// CHECK:STDOUT: %X.G.045884.2: %X.G.type.89b800.2 = struct_value () [symbolic] // CHECK:STDOUT: %C.98a: type = class_type @C, @C(%i32) [concrete] // CHECK:STDOUT: %X.448: type = class_type @X, @X(%i32) [concrete] // CHECK:STDOUT: %X.G.type.862: type = fn_type @X.G, @X(%i32) [concrete] @@ -828,10 +828,10 @@ fn H() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Main.import_ref.efcd44.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.e14 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.e33: @X.%X.G.type (%X.G.type.89b800.1) = import_ref Main//extend_generic_symbolic_base, loc5_15, loaded [symbolic = @X.%X.G (constants.%X.G.045884.1)] -// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)] // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//extend_generic_symbolic_base, loc4_14, loaded [symbolic = @X.%U (constants.%U)] // CHECK:STDOUT: %Main.import_ref.5d2: = import_ref Main//extend_generic_symbolic_base, loc10_1, loaded [symbolic = @C.%complete_type (constants.%complete_type.b1f)] // CHECK:STDOUT: %Main.import_ref.034 = import_ref Main//extend_generic_symbolic_base, inst{{[0-9A-F]+}} [no loc], unloaded @@ -875,7 +875,7 @@ fn H() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @X(imports.%Main.import_ref.efcd44.1: type) [from "extend_generic_symbolic_base.carbon"] { +// CHECK:STDOUT: generic class @X(imports.%Main.import_ref.efcd44.2: type) [from "extend_generic_symbolic_base.carbon"] { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -914,7 +914,7 @@ fn H() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @X.G(imports.%Main.import_ref.efcd44.2: type) [from "extend_generic_symbolic_base.carbon"] { +// CHECK:STDOUT: generic fn @X.G(imports.%Main.import_ref.efcd44.1: type) [from "extend_generic_symbolic_base.carbon"] { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic = %U (constants.%U)] // CHECK:STDOUT: %pattern_type: type = pattern_type %U [symbolic = %pattern_type (constants.%pattern_type.e68)] // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 55ad0bc48335b..654162c156fca 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -65,13 +65,13 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %Int.as.Copy.impl.Op.c95: %Int.as.Copy.impl.Op.type.24b = struct_value () [symbolic] // CHECK:STDOUT: %T.417: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.417 [symbolic] -// CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %Copy.lookup_impl_witness.c42a3d.1: = lookup_impl_witness %T.417, @Copy [symbolic] // CHECK:STDOUT: %.a79665.1: type = fn_type_with_self_type %Copy.Op.type, %T.417 [symbolic] // CHECK:STDOUT: %impl.elem0.fac0be.1: %.a79665.1 = impl_witness_access %Copy.lookup_impl_witness.c42a3d.1, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.103937.1: = specific_impl_function %impl.elem0.fac0be.1, @Copy.Op(%T.417) [symbolic] -// CHECK:STDOUT: %require_complete.d742dc.1: = require_complete_type %T.binding.as_type [symbolic] // CHECK:STDOUT: %pattern_type.f14b96.2: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d742dc.1: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.322: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %Copy.impl_witness.fb7: = impl_witness imports.%Copy.impl_witness_table.b6a, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.469: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.dfd: %Int.as.Copy.impl.Op.type.469 = struct_value () [concrete] diff --git a/toolchain/check/testdata/class/generic/import.carbon b/toolchain/check/testdata/class/generic/import.carbon index 78e1f629fc253..0870e14cb875a 100644 --- a/toolchain/check/testdata/class/generic/import.carbon +++ b/toolchain/check/testdata/class/generic/import.carbon @@ -322,11 +322,11 @@ class Class(U:! type) { // CHECK:STDOUT: %Main.import_ref.39e: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.60d) = import_ref Main//foo, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.846)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.99d = impl_witness_table (%Main.import_ref.39e), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//foo, loc4_13, loaded [symbolic = @Class.%T.1 (constants.%T)] +// CHECK:STDOUT: %Main.import_ref.efcd44.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.bcf = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.1b0 = import_ref Main//foo, loc7_8, unloaded // CHECK:STDOUT: %Main.import_ref.758 = import_ref Main//foo, loc8_17, unloaded -// CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.595 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] @@ -384,7 +384,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.3: type) [from "foo.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -403,7 +403,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.3: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -513,11 +513,11 @@ class Class(U:! type) { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T.d9f)] // CHECK:STDOUT: %Main.import_ref.eb1: = import_ref Main//foo, loc9_1, loaded [concrete = constants.%complete_type.54b] // CHECK:STDOUT: %Main.import_ref.bcf = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.c3a: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.36b) = import_ref Main//foo, loc7_8, loaded [concrete = %.a07] // CHECK:STDOUT: %Main.import_ref.191: @CompleteClass.%CompleteClass.F.type (%CompleteClass.F.type.0fa) = import_ref Main//foo, loc8_17, loaded [symbolic = @CompleteClass.%CompleteClass.F (constants.%CompleteClass.F.6e9)] -// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T.d9f)] // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T.d9f)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: %.a07: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.36b) = field_decl n, element0 [concrete] @@ -557,7 +557,7 @@ class Class(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.1: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T.d9f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -606,7 +606,7 @@ class Class(U:! type) { // CHECK:STDOUT: return %CompleteClass.F.call to %return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.1: type) [from "foo.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; @@ -726,11 +726,11 @@ class Class(U:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } +// CHECK:STDOUT: %Main.import_ref.efcd44.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.bcf = import_ref Main//foo, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.1b0 = import_ref Main//foo, loc7_8, unloaded // CHECK:STDOUT: %Main.import_ref.758 = import_ref Main//foo, loc8_17, unloaded -// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//foo, loc6_21, loaded [symbolic = @CompleteClass.%T (constants.%T)] // CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] @@ -750,7 +750,7 @@ class Class(U:! type) { // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.1: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic class @CompleteClass(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -796,7 +796,7 @@ class Class(U:! type) { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.2: type) [from "foo.carbon"] { +// CHECK:STDOUT: generic fn @CompleteClass.F(imports.%Main.import_ref.efcd44.1: type) [from "foo.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; diff --git a/toolchain/check/testdata/class/virtual_modifiers.carbon b/toolchain/check/testdata/class/virtual_modifiers.carbon index c5b02ca22127a..daae56c1acebc 100644 --- a/toolchain/check/testdata/class/virtual_modifiers.carbon +++ b/toolchain/check/testdata/class/virtual_modifiers.carbon @@ -4824,9 +4824,9 @@ class T2(G2:! type) { // CHECK:STDOUT: %Base.8f3: type = class_type @Base, @Base(%T) [symbolic] // CHECK:STDOUT: %Base.F.type.3ca: type = fn_type @Base.F, @Base(%T) [symbolic] // CHECK:STDOUT: %Base.F.77f: %Base.F.type.3ca = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.7f5: type = pattern_type %Base.8f3 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Base.8f3 [symbolic] // CHECK:STDOUT: %Base.F.specific_fn.2ee: = specific_function %Base.F.77f, @Base.F(%T) [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Base.8f3 [symbolic] +// CHECK:STDOUT: %pattern_type.7f5: type = pattern_type %Base.8f3 [symbolic] // CHECK:STDOUT: %Base.ea5: type = class_type @Base, @Base(%T1) [concrete] // CHECK:STDOUT: %Base.F.type.d82: type = fn_type @Base.F, @Base(%T1) [concrete] // CHECK:STDOUT: %Base.F.d25: %Base.F.type.d82 = struct_value () [concrete] @@ -4846,11 +4846,11 @@ class T2(G2:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } +// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//generic_lib, loc4_17, loaded [symbolic = @Base.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.4aa: ref %ptr.454 = import_ref Main//generic_lib, loc6_1, loaded [concrete = constants.%Base.vtable_decl] // CHECK:STDOUT: %Main.import_ref.05e: = import_ref Main//generic_lib, loc6_1, loaded [concrete = constants.%complete_type] // CHECK:STDOUT: %Main.import_ref.a14 = import_ref Main//generic_lib, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.184 = import_ref Main//generic_lib, loc5_30, unloaded -// CHECK:STDOUT: %Main.import_ref.efcd44.1: type = import_ref Main//generic_lib, loc4_17, loaded [symbolic = @Base.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//generic_lib, loc4_17, loaded [symbolic = @Base.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.66b: = import_ref Main//generic_lib, loc6_1, loaded [symbolic = constants.%Base.F.specific_fn.2ee] // CHECK:STDOUT: } @@ -4880,7 +4880,7 @@ class T2(G2:! type) { // CHECK:STDOUT: // CHECK:STDOUT: class @T1; // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Base(imports.%Main.import_ref.efcd44.1: type) [from "generic_lib.carbon"] { +// CHECK:STDOUT: generic class @Base(imports.%Main.import_ref.efcd44.2: type) [from "generic_lib.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -4902,7 +4902,7 @@ class T2(G2:! type) { // CHECK:STDOUT: imports.%Main.import_ref.66b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic virtual fn @Base.F(imports.%Main.import_ref.efcd44.2: type) [from "generic_lib.carbon"] { +// CHECK:STDOUT: generic virtual fn @Base.F(imports.%Main.import_ref.efcd44.1: type) [from "generic_lib.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T) [symbolic = %Base (constants.%Base.8f3)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Base [symbolic = %pattern_type (constants.%pattern_type.7f5)] diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index 519b41dd802be..14a69fe957761 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -894,12 +894,12 @@ fn Read() { // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.IntLiteral: %IntLiteral.type = import_ref Core//prelude/types/int_literal, IntLiteral, loaded [concrete = constants.%IntLiteral] +// CHECK:STDOUT: %Main.import_ref.40af26.1: Core.IntLiteral = import_ref Main//lib, loc4_16, loaded [symbolic = @IntRange.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.80d: = import_ref Main//lib, loc24_1, loaded [symbolic = @IntRange.%complete_type (constants.%complete_type.655)] // CHECK:STDOUT: %Main.import_ref.b1b = import_ref Main//lib, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.765 = import_ref Main//lib, loc5_57, unloaded // CHECK:STDOUT: %Main.import_ref.e5d = import_ref Main//lib, loc22_20, unloaded // CHECK:STDOUT: %Main.import_ref.997 = import_ref Main//lib, loc23_18, unloaded -// CHECK:STDOUT: %Main.import_ref.40af26.1: Core.IntLiteral = import_ref Main//lib, loc4_16, loaded [symbolic = @IntRange.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.40af26.2: Core.IntLiteral = import_ref Main//lib, loc4_16, loaded [symbolic = @IntRange.%N (constants.%N)] // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %Core.import_ref.7d5: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.365) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.8cf)] @@ -919,7 +919,7 @@ fn Read() { // CHECK:STDOUT: %Read.decl: %Read.type = fn_decl @Read [concrete = constants.%Read] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @IntRange(imports.%Main.import_ref.40af26.1: Core.IntLiteral) [from "lib.carbon"] { +// CHECK:STDOUT: generic class @IntRange(imports.%Main.import_ref.40af26.2: Core.IntLiteral) [from "lib.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -988,7 +988,7 @@ fn Read() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @IntRange.Make(imports.%Main.import_ref.40af26.2: Core.IntLiteral) [from "lib.carbon"] { +// CHECK:STDOUT: generic fn @IntRange.Make(imports.%Main.import_ref.40af26.1: Core.IntLiteral) [from "lib.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %Int: type = class_type @Int, @Int(%N) [symbolic = %Int (constants.%Int.f4f02c.1)] // CHECK:STDOUT: %pattern_type.1: type = pattern_type %Int [symbolic = %pattern_type.1 (constants.%pattern_type.e3e33e.1)] diff --git a/toolchain/check/testdata/function/builtin/call.carbon b/toolchain/check/testdata/function/builtin/call.carbon index 65baee4183b77..6a25cc7ad8825 100644 --- a/toolchain/check/testdata/function/builtin/call.carbon +++ b/toolchain/check/testdata/function/builtin/call.carbon @@ -40,10 +40,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f51: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.2a1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f51 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.type.7a9: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.2c2: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.cdf: %Int.as.ImplicitAs.impl.Convert.type.2c2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.bc9: = impl_witness imports.%ImplicitAs.impl_witness_table.132, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.51e: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e9b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.51e = struct_value () [concrete] diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 453233cb6fa95..2aab6b30f11db 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -729,11 +729,11 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %assoc0.5cf: %ImplicitAs.assoc_type.959 = assoc_entity element0, imports.%Core.import_ref.b91295.1 [concrete] // CHECK:STDOUT: %assoc0.7b6: %ImplicitAs.assoc_type.8b5 = assoc_entity element0, imports.%Core.import_ref.d11 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.873: type = facet_type <@ImplicitAs, @ImplicitAs(%i32.builtin)> [concrete] -// CHECK:STDOUT: %Self.418: %ImplicitAs.type.873 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %ImplicitAs.Convert.type.059: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%i32.builtin) [concrete] -// CHECK:STDOUT: %ImplicitAs.Convert.4d7: %ImplicitAs.Convert.type.059 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.assoc_type.398: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%i32.builtin) [concrete] // CHECK:STDOUT: %assoc0.5eb: %ImplicitAs.assoc_type.398 = assoc_entity element0, imports.%Core.import_ref.b91295.2 [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.059: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%i32.builtin) [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.4d7: %ImplicitAs.Convert.type.059 = struct_value () [concrete] +// CHECK:STDOUT: %Self.418: %ImplicitAs.type.873 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.fb8: = impl_witness imports.%ImplicitAs.impl_witness_table.16d [concrete] // CHECK:STDOUT: %ImplicitAs.facet.7e7: %ImplicitAs.type.7a9 = facet_value %i32.builtin, (%ImplicitAs.impl_witness.fb8) [concrete] // CHECK:STDOUT: %.f56: type = fn_type_with_self_type %ImplicitAs.Convert.type.71e, %ImplicitAs.facet.7e7 [concrete] @@ -809,9 +809,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Core.import_ref.4ff: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.2d9) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%Self (constants.%Self.4f1)] // CHECK:STDOUT: %Core.import_ref.d11 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.8a9: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.c15] +// CHECK:STDOUT: %Core.import_ref.b91295.2: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type.4c8) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert.e9f)] // CHECK:STDOUT: %Core.import_ref.8721d7.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] // CHECK:STDOUT: %Core.import_ref.64f: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.873] -// CHECK:STDOUT: %Core.import_ref.b91295.2: @ImplicitAs.%ImplicitAs.Convert.type (%ImplicitAs.Convert.type.4c8) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @ImplicitAs.%ImplicitAs.Convert (constants.%ImplicitAs.Convert.e9f)] // CHECK:STDOUT: %Core.import_ref.614: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.fb8] // CHECK:STDOUT: %Core.import_ref.c8c7cd.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] // CHECK:STDOUT: %Core.import_ref.d7b: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.7a9] diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index 15d8bfcad600a..8c0133b25f945 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -70,9 +70,9 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f51: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%To) [symbolic] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.2a1: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.f51 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.type.7a9: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.2c2: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.cdf: %Int.as.ImplicitAs.impl.Convert.type.2c2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.bc9: = impl_witness imports.%ImplicitAs.impl_witness_table.132, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.51e: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert, @Core.IntLiteral.as.ImplicitAs.impl(%int_32) [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.e9b: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.51e = struct_value () [concrete] diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index 1d34705fc8cab..fca7a54de4a7e 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -473,9 +473,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.import_ref.06e: = import_ref Main//generic_impl, loc15_48, loaded [symbolic = @MyInt.as.Add.impl.%Add.impl_witness (constants.%Add.impl_witness.ec1)] // CHECK:STDOUT: %Main.import_ref.59c: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.1ab) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.959)] // CHECK:STDOUT: %Add.impl_witness_table = impl_witness_table (%Main.import_ref.59c), @MyInt.as.Add.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.40af26.3: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.fbc: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @MyInt.as.Add.impl.%MyInt (constants.%MyInt.19f)] // CHECK:STDOUT: %Main.import_ref.bf0: type = import_ref Main//generic_impl, loc15_44, loaded [concrete = constants.%Add.type] -// CHECK:STDOUT: %Main.import_ref.40af26.3: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] // CHECK:STDOUT: %Main.import_ref.40af26.4: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -519,7 +519,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @MyInt.as.Add.impl(imports.%Main.import_ref.40af26.3: Core.IntLiteral) [from "generic_impl.carbon"] { +// CHECK:STDOUT: generic impl @MyInt.as.Add.impl(imports.%Main.import_ref.40af26.4: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.19f)] // CHECK:STDOUT: %Add.impl_witness: = impl_witness imports.%Add.impl_witness_table, @MyInt.as.Add.impl(%N) [symbolic = %Add.impl_witness (constants.%Add.impl_witness.ec1)] @@ -584,7 +584,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MyInt.as.Add.impl.Op(imports.%Main.import_ref.40af26.4: Core.IntLiteral) [from "generic_impl.carbon"] { +// CHECK:STDOUT: generic fn @MyInt.as.Add.impl.Op(imports.%Main.import_ref.40af26.3: Core.IntLiteral) [from "generic_impl.carbon"] { // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %MyInt: type = class_type @MyInt, @MyInt(%N) [symbolic = %MyInt (constants.%MyInt.19f)] // CHECK:STDOUT: %pattern_type: type = pattern_type %MyInt [symbolic = %pattern_type (constants.%pattern_type.37a)] diff --git a/toolchain/check/testdata/impl/import_generic.carbon b/toolchain/check/testdata/impl/import_generic.carbon index 41faf2bc9654b..290c30a31c87b 100644 --- a/toolchain/check/testdata/impl/import_generic.carbon +++ b/toolchain/check/testdata/impl/import_generic.carbon @@ -392,9 +392,9 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete.c94: = require_complete_type %I.type.070 [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] // CHECK:STDOUT: %I.type.229: type = facet_type <@I, @I(%ptr)> [symbolic] +// CHECK:STDOUT: %Self.6d0: %I.type.229 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.impl_witness.a0f: = impl_witness imports.%I.impl_witness_table.af9, @C.as.I.impl.1fddff.1(%T) [symbolic] // CHECK:STDOUT: %require_complete.555: = require_complete_type %I.type.229 [symbolic] -// CHECK:STDOUT: %Self.6d0: %I.type.229 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %N.type.673: type = generic_named_constaint_type @N [concrete] diff --git a/toolchain/check/testdata/impl/import_thunk.carbon b/toolchain/check/testdata/impl/import_thunk.carbon index 62a4aca4b58b6..cf17be8edaba8 100644 --- a/toolchain/check/testdata/impl/import_thunk.carbon +++ b/toolchain/check/testdata/impl/import_thunk.carbon @@ -391,17 +391,17 @@ fn G() { // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.158: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%DestroyT) [symbolic] // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.732: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.158 = struct_value () [symbolic] // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9d8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4a7) [symbolic] +// CHECK:STDOUT: %require_complete.10b: = require_complete_type %C.32c8ec.2 [symbolic] // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.32b: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.9d8 = struct_value () [symbolic] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a82: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.32b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4a7) [symbolic] // CHECK:STDOUT: %Destroy.impl_witness.3e8: = impl_witness imports.%Destroy.impl_witness_table, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.4a7) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.type.bc035d.2: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic] +// CHECK:STDOUT: %C.as.I.impl.F.e11987.2: %C.as.I.impl.F.type.bc035d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %pattern_type.ba6: type = pattern_type %C.32c8ec.2 [symbolic] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn.a82: = specific_function %DestroyT.binding.as_type.as.Destroy.impl.Op.32b, @DestroyT.binding.as_type.as.Destroy.impl.Op(%facet_value.4a7) [symbolic] // CHECK:STDOUT: %Destroy.facet.f71: %Destroy.type = facet_value %C.32c8ec.2, (%Destroy.impl_witness.3e8) [symbolic] // CHECK:STDOUT: %Destroy.Op.type: type = fn_type @Destroy.Op [concrete] // CHECK:STDOUT: %.7e5: type = fn_type_with_self_type %Destroy.Op.type, %Destroy.facet.f71 [symbolic] // CHECK:STDOUT: %C.val.31e: %C.32c8ec.2 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.10b: = require_complete_type %C.32c8ec.2 [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.type.bc035d.2: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic] -// CHECK:STDOUT: %C.as.I.impl.F.e11987.2: %C.as.I.impl.F.type.bc035d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %pattern_type.ba6: type = pattern_type %C.32c8ec.2 [symbolic] // CHECK:STDOUT: %C.as.I.impl.F.specific_fn.5ba: = specific_function %C.as.I.impl.F.e11987.2, @C.as.I.impl.F.2(%Y) [symbolic] // CHECK:STDOUT: %I.impl_witness.2f0: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%empty_tuple) [concrete] // CHECK:STDOUT: %C.as.I.impl.F.type.b60f7c.1: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%empty_tuple) [concrete] @@ -443,13 +443,13 @@ fn G() { // CHECK:STDOUT: %Main.import_ref.c03: = import_ref Main//b, loc7_32, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.9b0)] // CHECK:STDOUT: %Main.import_ref.fad: @C.as.I.impl.%C.as.I.impl.F.type.2 (%C.as.I.impl.F.type.bc035d.1) = import_ref Main//b, loc8_17, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.2 (constants.%C.as.I.impl.F.e11987.1)] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.fad), @C.as.I.impl [concrete] -// CHECK:STDOUT: %Main.import_ref.801: type = import_ref Main//b, loc7_25, loaded [symbolic = @C.as.I.impl.%C (constants.%C.32c8ec.2)] -// CHECK:STDOUT: %Main.import_ref.f50: type = import_ref Main//b, loc7_30, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.7a8327.2: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.F.564: @C.as.I.impl.%C.as.I.impl.F.type.1 (%C.as.I.impl.F.type.bc035d.2) = import_ref Main//b, F, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F.1 (constants.%C.as.I.impl.F.e11987.2)] -// CHECK:STDOUT: %Main.import_ref.7a8327.3: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] +// CHECK:STDOUT: %Main.import_ref.7a8327.2: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Main.import_ref.eac: @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op.type (%DestroyT.binding.as_type.as.Destroy.impl.Op.type.158) = import_ref Main//b, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @DestroyT.binding.as_type.as.Destroy.impl.%DestroyT.binding.as_type.as.Destroy.impl.Op (constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.732)] // CHECK:STDOUT: %Destroy.impl_witness_table = impl_witness_table (%Main.import_ref.eac), @DestroyT.binding.as_type.as.Destroy.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.7a8327.3: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] +// CHECK:STDOUT: %Main.import_ref.801: type = import_ref Main//b, loc7_25, loaded [symbolic = @C.as.I.impl.%C (constants.%C.32c8ec.2)] +// CHECK:STDOUT: %Main.import_ref.f50: type = import_ref Main//b, loc7_30, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.7a8327.4: %empty_tuple.type = import_ref Main//b, loc7_14, loaded [symbolic = @C.as.I.impl.%Y (constants.%Y)] // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } @@ -475,7 +475,7 @@ fn G() { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.7a8327.2: %empty_tuple.type) [from "b.carbon"] { +// CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.7a8327.4: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.32c8ec.2)] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%Y) [symbolic = %I.impl_witness (constants.%I.impl_witness.9b0)] @@ -543,7 +543,7 @@ fn G() { // CHECK:STDOUT: fn; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C.as.I.impl.F.1(imports.%Main.import_ref.7a8327.3: %empty_tuple.type) [from "b.carbon"] { +// CHECK:STDOUT: generic fn @C.as.I.impl.F.1(imports.%Main.import_ref.7a8327.2: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F.2, @C.as.I.impl(%Y) [symbolic = %C.as.I.impl.F.type (constants.%C.as.I.impl.F.type.bc035d.2)] @@ -563,7 +563,7 @@ fn G() { // CHECK:STDOUT: fn [thunk imports.%Main.F.564]; // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C.as.I.impl.F.2(imports.%Main.import_ref.7a8327.4: %empty_tuple.type) [from "b.carbon"] { +// CHECK:STDOUT: generic fn @C.as.I.impl.F.2(imports.%Main.import_ref.7a8327.3: %empty_tuple.type) [from "b.carbon"] { // CHECK:STDOUT: %Y: %empty_tuple.type = symbolic_binding Y, 0 [symbolic = %Y (constants.%Y)] // CHECK:STDOUT: %C: type = class_type @C, @C(%Y) [symbolic = %C (constants.%C.32c8ec.2)] // CHECK:STDOUT: %pattern_type: type = pattern_type %C [symbolic = %pattern_type (constants.%pattern_type.ba6)] diff --git a/toolchain/check/testdata/impl/import_use_generic.carbon b/toolchain/check/testdata/impl/import_use_generic.carbon index f6b6bab52fece..2b90c0c04c83f 100644 --- a/toolchain/check/testdata/impl/import_use_generic.carbon +++ b/toolchain/check/testdata/impl/import_use_generic.carbon @@ -230,9 +230,9 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: %Main.import_ref.bc1: = import_ref Main//import_generic, loc10_34, loaded [symbolic = @C.as.I.impl.%I.impl_witness (constants.%I.impl_witness.2ba)] // CHECK:STDOUT: %Main.import_ref.2bf: @C.as.I.impl.%C.as.I.impl.F.type (%C.as.I.impl.F.type.dd2) = import_ref Main//import_generic, loc11_10, loaded [symbolic = @C.as.I.impl.%C.as.I.impl.F (constants.%C.as.I.impl.F.470)] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.2bf), @C.as.I.impl [concrete] +// CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//import_generic, loc10_14, loaded [symbolic = @C.as.I.impl.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.4d2: type = import_ref Main//import_generic, loc10_27, loaded [symbolic = @C.as.I.impl.%C (constants.%C.3f0)] // CHECK:STDOUT: %Main.import_ref.301: type = import_ref Main//import_generic, loc10_32, loaded [concrete = constants.%I.type] -// CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//import_generic, loc10_14, loaded [symbolic = @C.as.I.impl.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//import_generic, loc10_14, loaded [symbolic = @C.as.I.impl.%T (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -298,7 +298,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.efcd44.2: type) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic impl @C.as.I.impl(imports.%Main.import_ref.efcd44.3: type) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %C: type = class_type @C, @C(%T) [symbolic = %C (constants.%C.3f0)] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table, @C.as.I.impl(%T) [symbolic = %I.impl_witness (constants.%I.impl_witness.2ba)] @@ -334,7 +334,7 @@ fn H() -> C({}).(I.F)() {} // CHECK:STDOUT: !entry: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @C.as.I.impl.F(imports.%Main.import_ref.efcd44.3: type) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic fn @C.as.I.impl.F(imports.%Main.import_ref.efcd44.2: type) [from "import_generic.carbon"] { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn; diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index ca431b88f0ef6..02abfabaef5ac 100644 --- a/toolchain/check/testdata/impl/interface_args.carbon +++ b/toolchain/check/testdata/impl/interface_args.carbon @@ -445,12 +445,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e34 [symbolic] // CHECK:STDOUT: %pattern_type.29e: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Action.type.74f: type = facet_type <@Action, @Action(%B)> [concrete] -// CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %Self.1b9: %Action.type.74f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.Op.type.54d: type = fn_type @Action.Op, @Action(%B) [concrete] -// CHECK:STDOUT: %Action.Op.dba: %Action.Op.type.54d = struct_value () [concrete] // CHECK:STDOUT: %Action.assoc_type.4ee: type = assoc_entity_type @Action, @Action(%B) [concrete] // CHECK:STDOUT: %assoc0.785: %Action.assoc_type.4ee = assoc_entity element0, imports.%Main.import_ref.38d [concrete] +// CHECK:STDOUT: %Action.Op.type.54d: type = fn_type @Action.Op, @Action(%B) [concrete] +// CHECK:STDOUT: %Action.Op.dba: %Action.Op.type.54d = struct_value () [concrete] +// CHECK:STDOUT: %Self.1b9: %Action.type.74f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %pattern_type.c10: type = pattern_type %A [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] @@ -482,12 +482,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.e3c: @Action.%Action.type (%Action.type.f0c) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.e34)] // CHECK:STDOUT: %Main.import_ref.c2f: = import_ref Main//action, loc12_21, loaded [concrete = constants.%Action.impl_witness] +// CHECK:STDOUT: %Main.import_ref.38d: @Action.%Action.Op.type (%Action.Op.type.0af) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%Action.Op (constants.%Action.Op.afb)] // 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, inst{{[0-9A-F]+}} [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.99f: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.74f] // CHECK:STDOUT: %Main.import_ref.8c4 = import_ref Main//action, loc13_23, unloaded -// CHECK:STDOUT: %Main.import_ref.38d: @Action.%Action.Op.type (%Action.Op.type.0af) = import_ref Main//action, loc5_22, loaded [symbolic = @Action.%Action.Op (constants.%Action.Op.afb)] // CHECK:STDOUT: %Main.import_ref.35cfc8.2 = import_ref Main//action, loc5_22, unloaded // CHECK:STDOUT: %Main.import_ref.469: %A.as.Action.impl.Op.type = import_ref Main//action, loc13_23, loaded [concrete = constants.%A.as.Action.impl.Op] // CHECK:STDOUT: %Action.impl_witness_table = impl_witness_table (%Main.import_ref.469), @A.as.Action.impl [concrete] @@ -625,12 +625,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e34 [symbolic] // CHECK:STDOUT: %pattern_type.29e: type = pattern_type %Self.binding.as_type [symbolic] // CHECK:STDOUT: %Action.type.74f: type = facet_type <@Action, @Action(%B)> [concrete] -// CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %Self.1b9: %Action.type.74f = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Action.Op.type.54d: type = fn_type @Action.Op, @Action(%B) [concrete] -// CHECK:STDOUT: %Action.Op.dba: %Action.Op.type.54d = struct_value () [concrete] // CHECK:STDOUT: %Action.assoc_type.4ee: type = assoc_entity_type @Action, @Action(%B) [concrete] // CHECK:STDOUT: %assoc0.cdf: %Action.assoc_type.4ee = assoc_entity element0, imports.%Main.import_ref.35cfc8.1 [concrete] +// CHECK:STDOUT: %Action.Op.type.54d: type = fn_type @Action.Op, @Action(%B) [concrete] +// CHECK:STDOUT: %Action.Op.dba: %Action.Op.type.54d = struct_value () [concrete] +// CHECK:STDOUT: %Self.1b9: %Action.type.74f = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %pattern_type.c10: type = pattern_type %A [concrete] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] @@ -664,12 +664,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.import_ref.efcd44.2: type = import_ref Main//action, loc4_18, loaded [symbolic = @Action.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.e3c: @Action.%Action.type (%Action.type.f0c) = import_ref Main//action, loc4_28, loaded [symbolic = @Action.%Self (constants.%Self.e34)] // CHECK:STDOUT: %Main.import_ref.7bf = import_ref Main//action, loc12_21, unloaded +// CHECK:STDOUT: %Main.import_ref.35cfc8.1 = import_ref Main//action, loc5_22, 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, inst{{[0-9A-F]+}} [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.99f: type = import_ref Main//action, loc12_19, loaded [concrete = constants.%Action.type.74f] // CHECK:STDOUT: %Main.import_ref.8c4 = import_ref Main//action, loc13_23, unloaded -// CHECK:STDOUT: %Main.import_ref.35cfc8.1 = import_ref Main//action, loc5_22, unloaded // 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, inst{{[0-9A-F]+}} [no loc], unloaded // CHECK:STDOUT: %Main.import_ref.35cfc8.2 = import_ref Main//action, loc5_22, unloaded @@ -1073,15 +1073,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.Make.type.b89: type = fn_type @Factory.Make, @Factory(%T) [symbolic] // CHECK:STDOUT: %Factory.Make.af4: %Factory.Make.type.b89 = struct_value () [symbolic] // CHECK:STDOUT: %Factory.type.3cb: type = facet_type <@Factory, @Factory(%B)> [concrete] -// CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %Self.197: %Factory.type.3cb = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] -// CHECK:STDOUT: %Factory.Make.efe: %Factory.Make.type.c59 = struct_value () [concrete] // CHECK:STDOUT: %Factory.assoc_type.579: type = assoc_entity_type @Factory, @Factory(%B) [concrete] -// CHECK:STDOUT: %assoc0.29a: %Factory.assoc_type.579 = assoc_entity element0, imports.%Main.import_ref.b49 [concrete] +// CHECK:STDOUT: %assoc1.952: %Factory.assoc_type.579 = assoc_entity element1, imports.%Main.import_ref.a6b [concrete] // CHECK:STDOUT: %Factory.Method.type.117: type = fn_type @Factory.Method, @Factory(%B) [concrete] // CHECK:STDOUT: %Factory.Method.ea9: %Factory.Method.type.117 = struct_value () [concrete] -// CHECK:STDOUT: %assoc1.952: %Factory.assoc_type.579 = assoc_entity element1, imports.%Main.import_ref.a6b [concrete] +// CHECK:STDOUT: %assoc0.29a: %Factory.assoc_type.579 = assoc_entity element0, imports.%Main.import_ref.b49 [concrete] +// CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] +// CHECK:STDOUT: %Factory.Make.efe: %Factory.Make.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %Self.197: %Factory.type.3cb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %pattern_type.049: type = pattern_type %B [concrete] // CHECK:STDOUT: %MakeB.type: type = fn_type @MakeB [concrete] // CHECK:STDOUT: %MakeB: %MakeB.type = struct_value () [concrete] @@ -1123,14 +1123,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.85fa76.2: @Factory.%Factory.type (%Factory.type.fc2) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.96a)] // CHECK:STDOUT: %Main.import_ref.a6e: = import_ref Main//factory, loc14_22, loaded [concrete = constants.%Factory.impl_witness] +// CHECK:STDOUT: %Main.import_ref.a6b: @Factory.%Factory.Method.type (%Factory.Method.type.159) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%Factory.Method (constants.%Factory.Method.8f7)] +// CHECK:STDOUT: %Main.import_ref.b49: @Factory.%Factory.Make.type (%Factory.Make.type.b89) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%Factory.Make (constants.%Factory.Make.af4)] // 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, inst{{[0-9A-F]+}} [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.e91: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.3cb] // CHECK:STDOUT: %Main.import_ref.22f = import_ref Main//factory, loc15_17, unloaded // CHECK:STDOUT: %Main.import_ref.5a9 = import_ref Main//factory, loc16_31, unloaded -// CHECK:STDOUT: %Main.import_ref.b49: @Factory.%Factory.Make.type (%Factory.Make.type.b89) = import_ref Main//factory, loc6_17, loaded [symbolic = @Factory.%Factory.Make (constants.%Factory.Make.af4)] -// CHECK:STDOUT: %Main.import_ref.a6b: @Factory.%Factory.Method.type (%Factory.Method.type.159) = import_ref Main//factory, loc8_31, loaded [symbolic = @Factory.%Factory.Method (constants.%Factory.Method.8f7)] // CHECK:STDOUT: %Main.import_ref.b0ae2d.2 = import_ref Main//factory, loc6_17, unloaded // CHECK:STDOUT: %Main.import_ref.4c9: %A.as.Factory.impl.Make.type = import_ref Main//factory, loc15_17, loaded [concrete = constants.%A.as.Factory.impl.Make] // CHECK:STDOUT: %Main.import_ref.721: %A.as.Factory.impl.Method.type = import_ref Main//factory, loc16_31, loaded [concrete = constants.%A.as.Factory.impl.Method] @@ -1327,15 +1327,15 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.Make.type.b89: type = fn_type @Factory.Make, @Factory(%T) [symbolic] // CHECK:STDOUT: %Factory.Make.af4: %Factory.Make.type.b89 = struct_value () [symbolic] // CHECK:STDOUT: %Factory.type.3cb: type = facet_type <@Factory, @Factory(%B)> [concrete] -// CHECK:STDOUT: %A: type = class_type @A [concrete] -// CHECK:STDOUT: %Self.197: %Factory.type.3cb = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] -// CHECK:STDOUT: %Factory.Make.efe: %Factory.Make.type.c59 = struct_value () [concrete] // CHECK:STDOUT: %Factory.assoc_type.579: type = assoc_entity_type @Factory, @Factory(%B) [concrete] -// CHECK:STDOUT: %assoc0.17c: %Factory.assoc_type.579 = assoc_entity element0, imports.%Main.import_ref.b0ae2d.1 [concrete] +// CHECK:STDOUT: %assoc1.387: %Factory.assoc_type.579 = assoc_entity element1, imports.%Main.import_ref.b6f0d8.1 [concrete] // CHECK:STDOUT: %Factory.Method.type.117: type = fn_type @Factory.Method, @Factory(%B) [concrete] // CHECK:STDOUT: %Factory.Method.ea9: %Factory.Method.type.117 = struct_value () [concrete] -// CHECK:STDOUT: %assoc1.387: %Factory.assoc_type.579 = assoc_entity element1, imports.%Main.import_ref.b6f0d8.1 [concrete] +// CHECK:STDOUT: %assoc0.17c: %Factory.assoc_type.579 = assoc_entity element0, imports.%Main.import_ref.b0ae2d.1 [concrete] +// CHECK:STDOUT: %Factory.Make.type.c59: type = fn_type @Factory.Make, @Factory(%B) [concrete] +// CHECK:STDOUT: %Factory.Make.efe: %Factory.Make.type.c59 = struct_value () [concrete] +// CHECK:STDOUT: %Self.197: %Factory.type.3cb = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %A: type = class_type @A [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] // CHECK:STDOUT: %MakeC.type: type = fn_type @MakeC [concrete] @@ -1380,14 +1380,14 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Main.import_ref.efcd44.3: type = import_ref Main//factory, loc4_19, loaded [symbolic = @Factory.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.85fa76.2: @Factory.%Factory.type (%Factory.type.fc2) = import_ref Main//factory, loc4_29, loaded [symbolic = @Factory.%Self (constants.%Self.96a)] // CHECK:STDOUT: %Main.import_ref.42c = import_ref Main//factory, loc14_22, unloaded +// CHECK:STDOUT: %Main.import_ref.b6f0d8.1 = import_ref Main//factory, loc8_31, unloaded +// CHECK:STDOUT: %Main.import_ref.b0ae2d.1 = import_ref Main//factory, loc6_17, 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, inst{{[0-9A-F]+}} [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.e91: type = import_ref Main//factory, loc14_20, loaded [concrete = constants.%Factory.type.3cb] // CHECK:STDOUT: %Main.import_ref.22f = import_ref Main//factory, loc15_17, unloaded // CHECK:STDOUT: %Main.import_ref.5a9 = import_ref Main//factory, loc16_31, unloaded -// CHECK:STDOUT: %Main.import_ref.b0ae2d.1 = import_ref Main//factory, loc6_17, unloaded -// CHECK:STDOUT: %Main.import_ref.b6f0d8.1 = import_ref Main//factory, loc8_31, unloaded // CHECK:STDOUT: %Main.import_ref.b0ae2d.2 = import_ref Main//factory, loc6_17, unloaded // CHECK:STDOUT: %Main.import_ref.b6f0d8.2 = import_ref Main//factory, loc8_31, unloaded // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon index ca5aa5bcab982..7b24271a234d8 100644 --- a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon @@ -109,9 +109,9 @@ fn F() { // CHECK:STDOUT: %MaybeUnformed.cff: type = class_type @MaybeUnformed, @MaybeUnformed(%ptr.4f0) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.911: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.d9f) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.2a0: %ptr.as.OptionalStorage.impl.Some.type.911 = struct_value () [symbolic] -// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.8ed: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.d9f) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41a: %ptr.as.OptionalStorage.impl.None.type.8ed = struct_value () [symbolic] +// CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %OptionalStorage.impl_witness.d16: = impl_witness imports.%OptionalStorage.impl_witness_table.f03, @ptr.as.OptionalStorage.impl(%i32) [concrete] // CHECK:STDOUT: %OptionalStorage.facet.083: %OptionalStorage.type = facet_value %ptr.235, (%OptionalStorage.impl_witness.d16) [concrete] // CHECK:STDOUT: %Optional.97d: type = class_type @Optional, @Optional(%OptionalStorage.facet.083) [concrete] diff --git a/toolchain/check/testdata/tuple/element_access.carbon b/toolchain/check/testdata/tuple/element_access.carbon index 19fd9d529d4a2..b4ad9258c87d7 100644 --- a/toolchain/check/testdata/tuple/element_access.carbon +++ b/toolchain/check/testdata/tuple/element_access.carbon @@ -270,10 +270,10 @@ var b: i32 = a.({.index = 2}.index); // CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access file.%a.var, element1 [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.7a9: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %From: Core.IntLiteral = symbolic_binding From, 0 [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.type.2c2: type = fn_type @Int.as.ImplicitAs.impl.Convert, @Int.as.ImplicitAs.impl(%From) [symbolic] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.cdf: %Int.as.ImplicitAs.impl.Convert.type.2c2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.Convert.type.71e: type = fn_type @ImplicitAs.Convert, @ImplicitAs(Core.IntLiteral) [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %struct_type.index.b1b: type = struct_type {.index: Core.IntLiteral} [concrete]