diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index 211d17ede321..3b1d2248323f 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1977,8 +1977,10 @@ auto ExprAsReturnForm(Context& context, SemIR::LocId loc_id, form_inst_id = AddInst( context, SemIR::LocIdAndInst::UncheckedLoc( - loc_id, SemIR::RefForm{.type_id = SemIR::FormType::TypeId, - .type_component_inst_id = type_inst_id})); + loc_id, + SemIR::RefForm{.type_id = SemIR::FormType::TypeId, + .type_component_inst_id = + context.types().GetAsTypeInstId(type_inst_id)})); } else { type_inst_id = ConvertToValueOfType(context, loc_id, value_id, SemIR::TypeType::TypeId); @@ -1995,7 +1997,8 @@ auto ExprAsReturnForm(Context& context, SemIR::LocId loc_id, loc_id, SemIR::InitForm{ .type_id = SemIR::FormType::TypeId, - .type_component_inst_id = type_inst_id, + .type_component_inst_id = + context.types().GetAsTypeInstId(type_inst_id), .index = context.full_pattern_stack().NextCallParamIndex()})); } diff --git a/toolchain/check/cpp/import.cpp b/toolchain/check/cpp/import.cpp index e017d3bb556e..45cd5d51b921 100644 --- a/toolchain/check/cpp/import.cpp +++ b/toolchain/check/cpp/import.cpp @@ -1218,6 +1218,7 @@ static auto GetReturnTypeExpr(Context& context, SemIR::LocId loc_id, // fields of SemIR::Function with the same names. struct ReturnInfo { SemIR::TypeInstId return_type_inst_id; + SemIR::InstId return_form_inst_id; SemIR::InstBlockId return_patterns_id; }; @@ -1231,10 +1232,12 @@ static auto GetReturnInfo(Context& context, SemIR::LocId loc_id, if (!type_inst_id.has_value()) { // void. return {.return_type_inst_id = type_inst_id, + .return_form_inst_id = SemIR::InstId::None, .return_patterns_id = SemIR::InstBlockId::None}; } if (type_inst_id == SemIR::ErrorInst::TypeInstId) { return {.return_type_inst_id = type_inst_id, + .return_form_inst_id = SemIR::InstId::None, .return_patterns_id = SemIR::InstBlockId::None}; } auto pattern_type_id = GetPatternType(context, type_id); @@ -1254,16 +1257,25 @@ static auto GetReturnInfo(Context& context, SemIR::LocId loc_id, context, return_type_import_ir_inst_id, SemIR::ReturnSlotPattern({.type_id = pattern_type_id, .type_inst_id = type_inst_id}))); + auto return_index = context.full_pattern_stack().NextCallParamIndex(); SemIR::InstId param_pattern_id = AddPatternInst( context, MakeImportedLocIdAndInst( context, return_type_import_ir_inst_id, - SemIR::OutParamPattern( - {.type_id = pattern_type_id, - .subpattern_id = return_slot_pattern_id, - .index = context.full_pattern_stack().NextCallParamIndex()}))); + SemIR::OutParamPattern({.type_id = pattern_type_id, + .subpattern_id = return_slot_pattern_id, + .index = return_index}))); auto return_patterns_id = context.inst_blocks().Add({param_pattern_id}); + + // For consistency with how C++ import handles types, we use TryEvalInst to + // directly create a constant rather than adding it to insts() first. + auto return_form_const_id = TryEvalInst( + context, SemIR::InitForm{.type_id = SemIR::FormType::TypeId, + .type_component_inst_id = type_inst_id, + .index = return_index}); return {.return_type_inst_id = type_inst_id, + .return_form_inst_id = + context.constant_values().GetInstId(return_form_const_id), .return_patterns_id = return_patterns_id}; } @@ -1275,6 +1287,7 @@ struct FunctionSignatureInsts { SemIR::InstBlockId implicit_param_patterns_id; SemIR::InstBlockId param_patterns_id; SemIR::TypeInstId return_type_inst_id; + SemIR::InstId return_form_inst_id; SemIR::InstBlockId return_patterns_id; SemIR::InstBlockId call_params_id; }; @@ -1305,7 +1318,7 @@ static auto CreateFunctionSignatureInsts(Context& context, SemIR::LocId loc_id, if (!param_patterns_id.has_value()) { return std::nullopt; } - auto [return_type_inst_id, return_patterns_id] = + auto [return_type_inst_id, return_form_inst_id, return_patterns_id] = GetReturnInfo(context, loc_id, clang_decl); if (return_type_inst_id == SemIR::ErrorInst::TypeInstId) { return std::nullopt; @@ -1319,6 +1332,7 @@ static auto CreateFunctionSignatureInsts(Context& context, SemIR::LocId loc_id, return {{.implicit_param_patterns_id = implicit_param_patterns_id, .param_patterns_id = param_patterns_id, .return_type_inst_id = return_type_inst_id, + .return_form_inst_id = return_form_inst_id, .return_patterns_id = return_patterns_id, .call_params_id = call_params_id}}; } @@ -1410,6 +1424,7 @@ static auto ImportFunction(Context& context, SemIR::LocId loc_id, .definition_id = SemIR::InstId::None}, {.call_params_id = function_params_insts->call_params_id, .return_type_inst_id = function_params_insts->return_type_inst_id, + .return_form_inst_id = function_params_insts->return_form_inst_id, .return_patterns_id = function_params_insts->return_patterns_id, .virtual_modifier = virtual_modifier, .virtual_index = virtual_index, diff --git a/toolchain/check/custom_witness.cpp b/toolchain/check/custom_witness.cpp index 66198a295613..9ef908c94d9c 100644 --- a/toolchain/check/custom_witness.cpp +++ b/toolchain/check/custom_witness.cpp @@ -97,6 +97,7 @@ static auto MakeNoOpFunction(Context& context, SemIR::LocId loc_id, { .call_params_id = call_params_id, .return_type_inst_id = SemIR::TypeInstId::None, + .return_form_inst_id = SemIR::InstId::None, .return_patterns_id = SemIR::InstBlockId::None, .self_param_id = self_param_id, }}; diff --git a/toolchain/check/global_init.cpp b/toolchain/check/global_init.cpp index 0a06959b9c26..13615e8960ea 100644 --- a/toolchain/check/global_init.cpp +++ b/toolchain/check/global_init.cpp @@ -50,6 +50,7 @@ auto GlobalInit::Finalize() -> void { .first_owning_decl_id = SemIR::InstId::None}, {.call_params_id = SemIR::InstBlockId::Empty, .return_type_inst_id = SemIR::TypeInstId::None, + .return_form_inst_id = SemIR::InstId::None, .return_patterns_id = SemIR::InstBlockId::None, .body_block_ids = {SemIR::InstBlockId::GlobalInit}}})); } diff --git a/toolchain/check/handle_function.cpp b/toolchain/check/handle_function.cpp index 92e822c0f37a..e896555ef401 100644 --- a/toolchain/check/handle_function.cpp +++ b/toolchain/check/handle_function.cpp @@ -190,6 +190,7 @@ static auto MergeFunctionRedecl(Context& context, prev_function.MergeDefinition(new_function); prev_function.call_params_id = new_function.call_params_id; prev_function.return_type_inst_id = new_function.return_type_inst_id; + prev_function.return_form_inst_id = new_function.return_form_inst_id; prev_function.return_patterns_id = new_function.return_patterns_id; prev_function.self_param_id = new_function.self_param_id; } @@ -408,12 +409,14 @@ static auto BuildFunctionDecl(Context& context, -> std::pair { auto return_patterns_id = SemIR::InstBlockId::None; auto return_type_inst_id = SemIR::TypeInstId::None; + auto return_form_inst_id = SemIR::InstId::None; if (auto [return_node, maybe_return_patterns_id] = context.node_stack().PopWithNodeIdIf(); maybe_return_patterns_id) { return_patterns_id = *maybe_return_patterns_id; - return_type_inst_id = context.PopReturnForm().type_component_id; - CARBON_CHECK(return_type_inst_id.has_value()); + auto return_form = context.PopReturnForm(); + return_type_inst_id = return_form.type_component_id; + return_form_inst_id = return_form.form_inst_id; } auto name = PopNameComponent(context, return_patterns_id); @@ -448,6 +451,7 @@ static auto BuildFunctionDecl(Context& context, name, decl_id, is_extern, introducer.extern_library), {.call_params_id = name.call_params_id, .return_type_inst_id = return_type_inst_id, + .return_form_inst_id = return_form_inst_id, .return_patterns_id = return_patterns_id, .virtual_modifier = virtual_modifier, .self_param_id = self_param_id}}; @@ -569,7 +573,7 @@ auto HandleParseNode(Context& context, Parse::FunctionDefinitionId node_id) // If the `}` of the function is reachable, reject if we need a return value // and otherwise add an implicit `return;`. if (IsCurrentPositionReachable(context)) { - if (context.functions().Get(function_id).return_type_inst_id.has_value()) { + if (context.functions().Get(function_id).return_form_inst_id.has_value()) { CARBON_DIAGNOSTIC( MissingReturnStatement, Error, "missing `return` at end of function with declared return type"); diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 173f4b6f497a..70b4a2c29f0d 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -2185,6 +2185,7 @@ static auto MakeFunctionDecl(ImportContext& context, {GetIncompleteLocalEntityBase(context, function_decl_id, import_function), {.call_params_id = SemIR::InstBlockId::None, .return_type_inst_id = SemIR::TypeInstId::None, + .return_form_inst_id = SemIR::InstId::None, .return_patterns_id = SemIR::InstBlockId::None, .virtual_modifier = import_function.virtual_modifier, .virtual_index = import_function.virtual_index}}); @@ -2245,6 +2246,11 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, return_type_const_id = GetLocalConstantId(resolver, import_function.return_type_inst_id); } + auto return_form_const_id = SemIR::ConstantId::None; + if (import_function.return_form_inst_id.has_value()) { + return_form_const_id = + GetLocalConstantId(resolver, import_function.return_form_inst_id); + } auto parent_scope_id = GetLocalNameScopeId(resolver, import_function.parent_scope_id); auto implicit_param_patterns = GetLocalInstBlockContents( @@ -2275,6 +2281,12 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, new_function.return_type_inst_id = AddLoadedImportRefForType( resolver, import_function.return_type_inst_id, return_type_const_id); } + new_function.return_form_inst_id = SemIR::InstId::None; + if (import_function.return_form_inst_id.has_value()) { + new_function.return_form_inst_id = AddLoadedImportRef( + resolver, SemIR::FormType::TypeId, import_function.return_form_inst_id, + return_form_const_id); + } new_function.return_patterns_id = GetLocalCanonicalInstBlockId( resolver, import_function.return_patterns_id, return_patterns); if (import_function.definition_id.has_value()) { @@ -3248,8 +3260,9 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::InitForm{ .type_id = resolver.local_types().GetTypeIdForTypeConstantId(type_const_id), - .type_component_inst_id = resolver.local_constant_values().GetInstId( - type_component_const_id), + .type_component_inst_id = resolver.local_types().GetInstId( + resolver.local_types().GetTypeIdForTypeConstantId( + type_component_const_id)), .index = inst.index}); } diff --git a/toolchain/check/return.cpp b/toolchain/check/return.cpp index f5efd06c116e..8cbd37c87598 100644 --- a/toolchain/check/return.cpp +++ b/toolchain/check/return.cpp @@ -4,6 +4,7 @@ #include "toolchain/check/return.h" +#include "toolchain/base/kind_switch.h" #include "toolchain/check/context.h" #include "toolchain/check/control_flow.h" #include "toolchain/check/convert.h" @@ -153,9 +154,26 @@ auto BuildReturnWithExpr(Context& context, SemIR::LocId loc_id, // convert to it. expr_id = SemIR::ErrorInst::InstId; } else { - return_slot_id = GetCurrentReturnSlot(context); - CARBON_CHECK(return_slot_id.has_value()); - expr_id = Initialize(context, loc_id, return_slot_id, expr_id); + auto return_form = + context.insts().Get(function.GetDeclaredReturnForm(context.sem_ir())); + CARBON_KIND_SWITCH(return_form) { + case CARBON_KIND(SemIR::InitForm _): { + return_slot_id = GetCurrentReturnSlot(context); + CARBON_CHECK(return_slot_id.has_value()); + expr_id = Initialize(context, loc_id, return_slot_id, expr_id); + break; + } + case CARBON_KIND(SemIR::RefForm ref_form): { + expr_id = Convert( + context, loc_id, expr_id, + ConversionTarget{.kind = ConversionTarget::DurableRef, + .type_id = context.types().GetTypeIdForTypeInstId( + ref_form.type_component_inst_id)}); + break; + } + default: + CARBON_FATAL("Unexpected inst kind: {0}", return_form); + } } AddReturnCleanupBlockWithExpr( 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 853d3a8ff8d8..2aec33ca4780 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -40,209 +40,214 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir60000004, inst_id: inst4800001D} // CHECK:STDOUT: import_ir_instA: {ir_id: import_ir60000004, inst_id: inst4800001F} // CHECK:STDOUT: import_ir_instB: {ir_id: import_ir60000004, inst_id: inst48000022} -// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000012} -// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000016} -// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst48000019} -// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst4800001E} -// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst48000025} -// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst4800006A} -// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst48000068} -// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000081} -// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst48000069} -// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000081} -// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst4800007C} -// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst4800007D} -// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst48000075} -// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst48000077} -// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000078} -// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000059} -// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst48000070} -// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000071} -// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst48000072} -// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst48000076} -// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst4800007B} -// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000089} -// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000092} -// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000099} -// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst4800009D} -// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst4800009E} -// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst480000A4} -// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800005D} -// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000063} -// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst48000066} -// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000059} -// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst4800005B} -// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000061} -// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst48000065} -// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst4800006C} -// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst48000084} -// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst48000085} -// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst480000B9} -// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst480000B7} -// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000B5} -// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000B6} -// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000D3} -// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000D1} -// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000CF} -// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D0} -// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000ED} -// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000EB} -// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000E9} -// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000EA} -// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst48000107} -// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst48000105} -// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000103} -// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst48000104} -// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst48000126} -// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst48000124} -// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst4800013A} -// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst48000125} -// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst4800011E} -// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst48000120} -// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst48000123} -// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst4800011B} -// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst4800011D} -// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst48000122} -// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst48000128} -// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst4800013A} -// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000135} -// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst48000136} -// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst4800012E} -// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000130} -// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst48000131} -// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst4800011B} -// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst4800012A} -// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst4800012B} -// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst4800012F} -// CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir60000004, inst_id: inst48000134} -// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800013D} -// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst4800013E} -// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst48000141} -// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst48000148} -// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst48000146} -// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst(TypeType)} -// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000145} -// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst48000160} -// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst4800015E} -// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst4800015C} -// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst4800015D} -// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst48000194} -// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000192} -// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst480001AF} -// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000193} -// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst480001AF} -// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst480001AA} -// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst480001AB} -// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst480001A3} -// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst480001A5} -// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst480001A6} -// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000175} -// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst4800017A} -// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst4800019C} -// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst4800019D} -// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst4800019E} -// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst4800019F} -// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst480001A0} -// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst480001A4} -// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst480001A9} -// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst480001B8} -// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst480001C1} -// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst480001C5} -// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst480001C7} -// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst480001C8} -// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst480001CB} -// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst480001D7} -// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst480001DC} -// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst480001E0} -// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst480001E1} -// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst480001E7} -// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst4800017D} -// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst48000177} -// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst4800018D} -// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst4800018F} -// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst48000175} -// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst4800017A} -// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst48000176} -// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst4800017C} -// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst48000183} -// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst48000186} -// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst4800018A} -// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst4800018E} -// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst48000196} -// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst480001B2} -// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst480001B3} -// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst48000222} -// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst48000220} -// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst48000241} -// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst48000221} -// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst48000241} -// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst4800023C} -// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst4800023D} -// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst48000235} -// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst48000237} -// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst48000238} -// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst480001F9} -// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst480001FE} -// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000203} -// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800022C} -// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst4800022D} -// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst4800022E} -// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst4800022F} -// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000230} -// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst48000231} -// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst48000232} -// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst48000236} -// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst4800023B} -// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst4800024A} -// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000252} -// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst48000256} -// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst48000258} -// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst48000259} -// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst4800025C} -// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst48000266} -// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst4800026A} -// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst4800026C} -// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst4800026D} -// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst48000270} -// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst4800027C} -// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst48000281} -// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst48000285} -// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst48000286} -// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst4800028C} -// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst48000206} -// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst48000200} -// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst480001FB} -// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst4800021A} -// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst4800021C} -// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst480001F9} -// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst480001FE} -// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst48000203} -// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst480001FA} -// CHECK:STDOUT: import_ir_instBE: {ir_id: import_ir60000004, inst_id: inst480001FF} -// CHECK:STDOUT: import_ir_instBF: {ir_id: import_ir60000004, inst_id: inst48000205} -// CHECK:STDOUT: import_ir_instC0: {ir_id: import_ir60000004, inst_id: inst4800020D} -// CHECK:STDOUT: import_ir_instC1: {ir_id: import_ir60000004, inst_id: inst48000210} -// CHECK:STDOUT: import_ir_instC2: {ir_id: import_ir60000004, inst_id: inst48000213} -// CHECK:STDOUT: import_ir_instC3: {ir_id: import_ir60000004, inst_id: inst48000217} -// CHECK:STDOUT: import_ir_instC4: {ir_id: import_ir60000004, inst_id: inst4800021B} -// CHECK:STDOUT: import_ir_instC5: {ir_id: import_ir60000004, inst_id: inst48000224} -// CHECK:STDOUT: import_ir_instC6: {ir_id: import_ir60000004, inst_id: inst48000244} -// CHECK:STDOUT: import_ir_instC7: {ir_id: import_ir60000004, inst_id: inst48000245} +// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000023} +// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000012} +// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst48000016} +// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst48000019} +// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst4800001E} +// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst48000025} +// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst4800006A} +// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000068} +// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst48000081} +// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000069} +// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst48000081} +// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst4800007C} +// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst4800007D} +// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst48000075} +// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000077} +// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000078} +// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst48000079} +// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000059} +// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst48000070} +// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst48000071} +// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst48000072} +// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000076} +// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst4800007B} +// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000089} +// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst48000092} +// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst48000099} +// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst4800009D} +// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800009E} +// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst480000A4} +// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst4800005D} +// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000063} +// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst48000066} +// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000059} +// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst4800005B} +// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst48000061} +// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst48000065} +// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst4800006C} +// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst48000084} +// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst48000085} +// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000B9} +// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000B7} +// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000B5} +// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000B6} +// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000D3} +// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D1} +// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000CF} +// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000D0} +// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000ED} +// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000EB} +// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst480000E9} +// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst480000EA} +// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000107} +// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst48000105} +// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst48000103} +// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst48000104} +// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst48000126} +// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst48000124} +// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst4800013A} +// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst48000125} +// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst4800011E} +// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst48000120} +// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst48000123} +// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst4800011B} +// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst4800011D} +// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst48000122} +// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000128} +// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst4800013A} +// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst48000135} +// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000136} +// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst4800012E} +// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst48000130} +// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst48000131} +// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst48000132} +// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst4800011B} +// CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir60000004, inst_id: inst4800012A} +// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800012B} +// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst4800012F} +// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst48000134} +// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst4800013D} +// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst4800013E} +// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst48000141} +// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000148} +// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst48000146} +// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst(TypeType)} +// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst48000145} +// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst48000160} +// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst4800015E} +// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst4800015C} +// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst4800015D} +// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000194} +// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst48000192} +// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst480001AF} +// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst48000193} +// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst480001AF} +// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst480001AA} +// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst480001AB} +// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst480001A3} +// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst480001A5} +// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst480001A6} +// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst480001A7} +// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst48000175} +// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst4800017A} +// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst4800019C} +// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst4800019D} +// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst4800019E} +// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst4800019F} +// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst480001A0} +// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst480001A4} +// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst480001A9} +// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst480001B8} +// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst480001C1} +// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst480001C5} +// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst480001C7} +// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst480001C8} +// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst480001CB} +// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst480001D7} +// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst480001DC} +// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst480001E0} +// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst480001E1} +// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst480001E7} +// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst4800017D} +// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst48000177} +// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst4800018D} +// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst4800018F} +// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst48000175} +// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst4800017A} +// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst48000176} +// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst4800017C} +// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst48000183} +// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst48000186} +// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst4800018A} +// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst4800018E} +// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst48000196} +// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst480001B2} +// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst480001B3} +// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst48000222} +// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst48000220} +// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst48000241} +// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst48000221} +// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst48000241} +// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst4800023C} +// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst4800023D} +// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst48000235} +// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000237} +// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst48000238} +// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst48000239} +// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst480001F9} +// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst480001FE} +// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000203} +// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst4800022C} +// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst4800022D} +// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst4800022E} +// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst4800022F} +// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst48000230} +// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000231} +// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst48000232} +// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst48000236} +// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800023B} +// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst4800024A} +// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst48000252} +// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst48000256} +// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst48000258} +// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst48000259} +// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst4800025C} +// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst48000266} +// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst4800026A} +// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst4800026C} +// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst4800026D} +// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst48000270} +// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst4800027C} +// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst48000281} +// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst48000285} +// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst48000286} +// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst4800028C} +// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst48000206} +// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst48000200} +// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst480001FB} +// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst4800021A} +// CHECK:STDOUT: import_ir_instBE: {ir_id: import_ir60000004, inst_id: inst4800021C} +// CHECK:STDOUT: import_ir_instBF: {ir_id: import_ir60000004, inst_id: inst480001F9} +// CHECK:STDOUT: import_ir_instC0: {ir_id: import_ir60000004, inst_id: inst480001FE} +// CHECK:STDOUT: import_ir_instC1: {ir_id: import_ir60000004, inst_id: inst48000203} +// CHECK:STDOUT: import_ir_instC2: {ir_id: import_ir60000004, inst_id: inst480001FA} +// CHECK:STDOUT: import_ir_instC3: {ir_id: import_ir60000004, inst_id: inst480001FF} +// CHECK:STDOUT: import_ir_instC4: {ir_id: import_ir60000004, inst_id: inst48000205} +// CHECK:STDOUT: import_ir_instC5: {ir_id: import_ir60000004, inst_id: inst4800020D} +// CHECK:STDOUT: import_ir_instC6: {ir_id: import_ir60000004, inst_id: inst48000210} +// CHECK:STDOUT: import_ir_instC7: {ir_id: import_ir60000004, inst_id: inst48000213} +// CHECK:STDOUT: import_ir_instC8: {ir_id: import_ir60000004, inst_id: inst48000217} +// CHECK:STDOUT: import_ir_instC9: {ir_id: import_ir60000004, inst_id: inst4800021B} +// CHECK:STDOUT: import_ir_instCA: {ir_id: import_ir60000004, inst_id: inst48000224} +// CHECK:STDOUT: import_ir_instCB: {ir_id: import_ir60000004, inst_id: inst48000244} +// CHECK:STDOUT: import_ir_instCC: {ir_id: import_ir60000004, inst_id: inst48000245} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: // CHECK:STDOUT: name_scope0: {inst: instF, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst60000011, name0: inst6000003C}} // CHECK:STDOUT: name_scope60000001: {inst: inst60000011, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst6000004D}} // CHECK:STDOUT: name_scope60000002: {inst: inst6000004E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {name(SelfType): inst60000051, name4: inst60000052}} -// CHECK:STDOUT: name_scope60000003: {inst: inst60000069, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000004: {inst: inst6000009A, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000005: {inst: inst6000009E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000006: {inst: inst600000A2, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000007: {inst: inst600000A6, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000008: {inst: inst600000AA, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000009: {inst: inst600000C7, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000A: {inst: inst600000CB, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000B: {inst: inst600000CF, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000C: {inst: inst6000010E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000003: {inst: inst6000006A, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000004: {inst: inst6000009C, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000005: {inst: inst600000A0, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000006: {inst: inst600000A4, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000007: {inst: inst600000A8, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000008: {inst: inst600000AC, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000009: {inst: inst600000CA, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000A: {inst: inst600000CE, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000B: {inst: inst600000D2, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000C: {inst: inst60000112, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name60000000: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name60000001: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} @@ -309,24 +314,24 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name6000003E: {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_block60000010, return_type_inst_id: inst6000002F, return_patterns_id: inst_block6000000F, body: [inst_block60000017]} -// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_type_inst_id: inst60000061, return_patterns_id: inst_block6000001B} -// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_type_inst_id: inst60000079, return_patterns_id: inst_block60000025} -// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_type_inst_id: inst600000BD, return_patterns_id: inst_block60000039} -// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_type_inst_id: inst600000E1, return_patterns_id: inst_block60000046} -// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_type_inst_id: inst60000120, return_patterns_id: inst_block6000005F} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block60000010, return_type_inst_id: inst6000002F, return_form_inst_id: inst60000031, return_patterns_id: inst_block6000000F, body: [inst_block60000017]} +// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_type_inst_id: inst60000061, return_form_inst_id: inst60000062, return_patterns_id: inst_block6000001B} +// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_type_inst_id: inst6000007A, return_form_inst_id: inst6000007B, return_patterns_id: inst_block60000025} +// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_type_inst_id: inst600000BF, return_form_inst_id: inst600000C0, return_patterns_id: inst_block60000039} +// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_type_inst_id: inst600000E4, return_form_inst_id: inst600000E5, return_patterns_id: inst_block60000046} +// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_type_inst_id: inst60000124, return_form_inst_id: inst60000125, return_patterns_id: inst_block6000005F} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: // CHECK:STDOUT: generic60000000: {decl: inst6000003C, bindings: inst_block60000013} // CHECK:STDOUT: generic60000001: {decl: inst60000057, bindings: inst_block6000001C} -// CHECK:STDOUT: generic60000002: {decl: inst60000069, bindings: inst_block6000002D} -// CHECK:STDOUT: generic60000003: {decl: inst60000070, bindings: inst_block60000026} -// CHECK:STDOUT: generic60000004: {decl: inst600000AA, bindings: inst_block60000035} -// CHECK:STDOUT: generic60000005: {decl: inst600000B5, bindings: inst_block6000003A} -// CHECK:STDOUT: generic60000006: {decl: inst600000CF, bindings: inst_block60000051} -// CHECK:STDOUT: generic60000007: {decl: inst600000D6, bindings: inst_block60000047} -// CHECK:STDOUT: generic60000008: {decl: inst6000010E, bindings: inst_block6000006B} -// CHECK:STDOUT: generic60000009: {decl: inst60000115, bindings: inst_block60000060} +// CHECK:STDOUT: generic60000002: {decl: inst6000006A, bindings: inst_block6000002D} +// CHECK:STDOUT: generic60000003: {decl: inst60000071, bindings: inst_block60000026} +// CHECK:STDOUT: generic60000004: {decl: inst600000AC, bindings: inst_block60000035} +// CHECK:STDOUT: generic60000005: {decl: inst600000B7, bindings: inst_block6000003A} +// CHECK:STDOUT: generic60000006: {decl: inst600000D2, bindings: inst_block60000051} +// CHECK:STDOUT: generic60000007: {decl: inst600000D9, bindings: inst_block60000047} +// CHECK:STDOUT: generic60000008: {decl: inst60000112, bindings: inst_block6000006B} +// CHECK:STDOUT: generic60000009: {decl: inst60000119, bindings: inst_block60000060} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific60000000: {generic: generic60000000, args: inst_block60000014} // CHECK:STDOUT: specific60000001: {generic: generic60000001, args: inst_block6000001E} @@ -393,9 +398,9 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(SpecificFunctionType))} // CHECK:STDOUT: 'type(inst(RequireSpecificDefinitionType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: 'type(symbolic_constant60000124)': +// CHECK:STDOUT: 'type(symbolic_constant60000129)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000025)} -// CHECK:STDOUT: 'type(symbolic_constant60000127)': +// CHECK:STDOUT: 'type(symbolic_constant6000012C)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000025)} // CHECK:STDOUT: 'type(inst(BoundMethodType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(BoundMethodType))} @@ -483,278 +488,283 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst6000005F: {kind: ValueParamPattern, arg0: inst6000005E, arg1: call_param0, type: type(symbolic_constant60000017)} // CHECK:STDOUT: inst60000060: {kind: InitForm, arg0: inst6000005A, arg1: call_param1, type: type(inst(FormType))} // CHECK:STDOUT: inst60000061: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000062: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000063: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000064: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst60000065: {kind: PatternType, arg0: inst60000064, type: type(TypeType)} -// CHECK:STDOUT: inst60000066: {kind: InitForm, arg0: inst60000064, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000067: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000068: {kind: ImportRefUnloaded, arg0: import_ir_inst11, arg1: entity_name} -// CHECK:STDOUT: inst60000069: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000006A: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000006B: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000006A, type: type(TypeType)} -// CHECK:STDOUT: inst6000006C: {kind: ConstType, arg0: inst6000006B, type: type(TypeType)} -// CHECK:STDOUT: inst6000006D: {kind: ImportRefUnloaded, arg0: import_ir_inst13, arg1: entity_name} -// CHECK:STDOUT: inst6000006E: {kind: ImplWitnessTable, arg0: inst_block60000020, arg1: impl60000000} -// CHECK:STDOUT: inst6000006F: {kind: ImplWitness, arg0: inst6000006E, arg1: specific60000002, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000070: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000027)} -// CHECK:STDOUT: inst60000071: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} -// CHECK:STDOUT: inst60000072: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000027)} -// CHECK:STDOUT: inst60000073: {kind: PatternType, arg0: inst6000006C, type: type(TypeType)} -// CHECK:STDOUT: inst60000074: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000002C)} -// CHECK:STDOUT: inst60000075: {kind: OutParamPattern, arg0: inst60000074, arg1: call_param1, type: type(symbolic_constant6000002C)} -// CHECK:STDOUT: inst60000076: {kind: ValueBindingPattern, arg0: entity_name6000000E, type: type(symbolic_constant6000002C)} -// CHECK:STDOUT: inst60000077: {kind: ValueParamPattern, arg0: inst60000076, arg1: call_param0, type: type(symbolic_constant6000002C)} -// CHECK:STDOUT: inst60000078: {kind: InitForm, arg0: inst6000006C, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000079: {kind: ImportRefLoaded, arg0: import_ir_inst1A, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000007A: {kind: ImportRefLoaded, arg0: import_ir_inst1B, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000007B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000007C: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000007B, type: type(TypeType)} -// CHECK:STDOUT: inst6000007D: {kind: ConstType, arg0: inst6000007C, type: type(TypeType)} -// CHECK:STDOUT: inst6000007E: {kind: PatternType, arg0: inst6000007D, type: type(TypeType)} -// CHECK:STDOUT: inst6000007F: {kind: InitForm, arg0: inst6000007D, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000080: {kind: LookupImplWitness, arg0: inst6000006A, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000081: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000006A, type: type(TypeType)} -// CHECK:STDOUT: inst60000082: {kind: ImplWitnessAccess, arg0: inst60000080, arg1: element0, type: type(symbolic_constant6000003A)} -// CHECK:STDOUT: inst60000083: {kind: SpecificImplFunction, arg0: inst60000082, arg1: specific60000003, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000084: {kind: InitForm, arg0: inst6000006B, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000085: {kind: PatternType, arg0: inst6000006B, type: type(TypeType)} -// CHECK:STDOUT: inst60000086: {kind: RequireCompleteType, arg0: inst6000006B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000087: {kind: RequireCompleteType, arg0: inst6000006C, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000088: {kind: RequireCompleteType, arg0: inst6000007D, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000089: {kind: RequireCompleteType, arg0: inst6000007C, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000008A: {kind: LookupImplWitness, arg0: inst6000007B, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000008B: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000007B, type: type(TypeType)} -// CHECK:STDOUT: inst6000008C: {kind: ImplWitnessAccess, arg0: inst6000008A, arg1: element0, type: type(symbolic_constant6000004A)} -// CHECK:STDOUT: inst6000008D: {kind: SpecificImplFunction, arg0: inst6000008C, arg1: specific60000005, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000008E: {kind: PatternType, arg0: inst6000004F, type: type(TypeType)} -// CHECK:STDOUT: inst6000008F: {kind: SymbolicBindingPattern, arg0: entity_name60000014, type: type(inst6000008E)} -// CHECK:STDOUT: inst60000090: {kind: ImportRefLoaded, arg0: import_ir_inst28, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000091: {kind: ImportRefLoaded, arg0: import_ir_inst29, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000092: {kind: ImportRefLoaded, arg0: import_ir_inst2A, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000093: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000094: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000093, type: type(TypeType)} -// CHECK:STDOUT: inst60000095: {kind: ConstType, arg0: inst60000094, type: type(TypeType)} -// CHECK:STDOUT: inst60000096: {kind: ImplWitness, arg0: inst6000006E, arg1: specific60000006, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000097: {kind: FunctionType, arg0: function60000002, arg1: specific60000006, type: type(TypeType)} -// CHECK:STDOUT: inst60000098: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000055)} -// CHECK:STDOUT: inst60000099: {kind: ImportRefUnloaded, arg0: import_ir_inst31, arg1: entity_name} -// CHECK:STDOUT: inst6000009A: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009B: {kind: ImportRefLoaded, arg0: import_ir_inst33, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009C: {kind: ImportRefLoaded, arg0: import_ir_inst34, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009D: {kind: ImportRefUnloaded, arg0: import_ir_inst35, arg1: entity_name} -// CHECK:STDOUT: inst6000009E: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009F: {kind: ImportRefLoaded, arg0: import_ir_inst37, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A0: {kind: ImportRefLoaded, arg0: import_ir_inst38, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A1: {kind: ImportRefUnloaded, arg0: import_ir_inst39, arg1: entity_name} -// CHECK:STDOUT: inst600000A2: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000A3: {kind: ImportRefLoaded, arg0: import_ir_inst3B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A4: {kind: ImportRefLoaded, arg0: import_ir_inst3C, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A5: {kind: ImportRefUnloaded, arg0: import_ir_inst3D, arg1: entity_name} -// CHECK:STDOUT: inst600000A6: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000A7: {kind: ImportRefLoaded, arg0: import_ir_inst3F, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A8: {kind: ImportRefLoaded, arg0: import_ir_inst40, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A9: {kind: ImportRefLoaded, arg0: import_ir_inst41, arg1: entity_name, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000AA: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000AB: {kind: ImportRefUnloaded, arg0: import_ir_inst43, arg1: entity_name} -// CHECK:STDOUT: inst600000AC: {kind: ImplWitnessTable, arg0: inst_block60000032, arg1: impl60000005} -// CHECK:STDOUT: inst600000AD: {kind: ImplWitness, arg0: inst600000AC, arg1: specific60000007, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000AE: {kind: SymbolicBindingPattern, arg0: entity_name60000018, type: type(inst60000018)} -// CHECK:STDOUT: inst600000AF: {kind: ImportRefLoaded, arg0: import_ir_inst46, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000B0: {kind: ImportRefLoaded, arg0: import_ir_inst47, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000062: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000063: {kind: ImportRefLoaded, arg0: import_ir_instD, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000064: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000065: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst60000064, type: type(TypeType)} +// CHECK:STDOUT: inst60000066: {kind: PatternType, arg0: inst60000065, type: type(TypeType)} +// CHECK:STDOUT: inst60000067: {kind: InitForm, arg0: inst60000065, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000068: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000069: {kind: ImportRefUnloaded, arg0: import_ir_inst12, arg1: entity_name} +// CHECK:STDOUT: inst6000006A: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000006B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000006C: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000006B, type: type(TypeType)} +// CHECK:STDOUT: inst6000006D: {kind: ConstType, arg0: inst6000006C, type: type(TypeType)} +// CHECK:STDOUT: inst6000006E: {kind: ImportRefUnloaded, arg0: import_ir_inst14, arg1: entity_name} +// CHECK:STDOUT: inst6000006F: {kind: ImplWitnessTable, arg0: inst_block60000020, arg1: impl60000000} +// CHECK:STDOUT: inst60000070: {kind: ImplWitness, arg0: inst6000006F, arg1: specific60000002, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000071: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000028)} +// CHECK:STDOUT: inst60000072: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} +// CHECK:STDOUT: inst60000073: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000028)} +// CHECK:STDOUT: inst60000074: {kind: PatternType, arg0: inst6000006D, type: type(TypeType)} +// CHECK:STDOUT: inst60000075: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000002D)} +// CHECK:STDOUT: inst60000076: {kind: OutParamPattern, arg0: inst60000075, arg1: call_param1, type: type(symbolic_constant6000002D)} +// CHECK:STDOUT: inst60000077: {kind: ValueBindingPattern, arg0: entity_name6000000E, type: type(symbolic_constant6000002D)} +// CHECK:STDOUT: inst60000078: {kind: ValueParamPattern, arg0: inst60000077, arg1: call_param0, type: type(symbolic_constant6000002D)} +// CHECK:STDOUT: inst60000079: {kind: InitForm, arg0: inst6000006D, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst6000007A: {kind: ImportRefLoaded, arg0: import_ir_inst1B, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000007B: {kind: ImportRefLoaded, arg0: import_ir_inst1C, arg1: entity_name, type: type(inst(FormType))} +// CHECK:STDOUT: inst6000007C: {kind: ImportRefLoaded, arg0: import_ir_inst1D, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000007D: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000007E: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000007D, type: type(TypeType)} +// CHECK:STDOUT: inst6000007F: {kind: ConstType, arg0: inst6000007E, type: type(TypeType)} +// CHECK:STDOUT: inst60000080: {kind: PatternType, arg0: inst6000007F, type: type(TypeType)} +// CHECK:STDOUT: inst60000081: {kind: InitForm, arg0: inst6000007F, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000082: {kind: LookupImplWitness, arg0: inst6000006B, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000083: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000006B, type: type(TypeType)} +// CHECK:STDOUT: inst60000084: {kind: ImplWitnessAccess, arg0: inst60000082, arg1: element0, type: type(symbolic_constant6000003C)} +// CHECK:STDOUT: inst60000085: {kind: SpecificImplFunction, arg0: inst60000084, arg1: specific60000003, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000086: {kind: InitForm, arg0: inst6000006C, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000087: {kind: PatternType, arg0: inst6000006C, type: type(TypeType)} +// CHECK:STDOUT: inst60000088: {kind: RequireCompleteType, arg0: inst6000006C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000089: {kind: RequireCompleteType, arg0: inst6000006D, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008A: {kind: RequireCompleteType, arg0: inst6000007F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008B: {kind: RequireCompleteType, arg0: inst6000007E, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008C: {kind: LookupImplWitness, arg0: inst6000007D, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008D: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000007D, type: type(TypeType)} +// CHECK:STDOUT: inst6000008E: {kind: ImplWitnessAccess, arg0: inst6000008C, arg1: element0, type: type(symbolic_constant6000004C)} +// CHECK:STDOUT: inst6000008F: {kind: SpecificImplFunction, arg0: inst6000008E, arg1: specific60000005, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000090: {kind: PatternType, arg0: inst6000004F, type: type(TypeType)} +// CHECK:STDOUT: inst60000091: {kind: SymbolicBindingPattern, arg0: entity_name60000014, type: type(inst60000090)} +// CHECK:STDOUT: inst60000092: {kind: ImportRefLoaded, arg0: import_ir_inst2A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000093: {kind: ImportRefLoaded, arg0: import_ir_inst2B, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000094: {kind: ImportRefLoaded, arg0: import_ir_inst2C, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000095: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000096: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000095, type: type(TypeType)} +// CHECK:STDOUT: inst60000097: {kind: ConstType, arg0: inst60000096, type: type(TypeType)} +// CHECK:STDOUT: inst60000098: {kind: ImplWitness, arg0: inst6000006F, arg1: specific60000006, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000099: {kind: FunctionType, arg0: function60000002, arg1: specific60000006, type: type(TypeType)} +// CHECK:STDOUT: inst6000009A: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000057)} +// CHECK:STDOUT: inst6000009B: {kind: ImportRefUnloaded, arg0: import_ir_inst33, arg1: entity_name} +// CHECK:STDOUT: inst6000009C: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000009D: {kind: ImportRefLoaded, arg0: import_ir_inst35, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009E: {kind: ImportRefLoaded, arg0: import_ir_inst36, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009F: {kind: ImportRefUnloaded, arg0: import_ir_inst37, arg1: entity_name} +// CHECK:STDOUT: inst600000A0: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000A1: {kind: ImportRefLoaded, arg0: import_ir_inst39, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A2: {kind: ImportRefLoaded, arg0: import_ir_inst3A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A3: {kind: ImportRefUnloaded, arg0: import_ir_inst3B, arg1: entity_name} +// CHECK:STDOUT: inst600000A4: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000A5: {kind: ImportRefLoaded, arg0: import_ir_inst3D, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A6: {kind: ImportRefLoaded, arg0: import_ir_inst3E, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A7: {kind: ImportRefUnloaded, arg0: import_ir_inst3F, arg1: entity_name} +// CHECK:STDOUT: inst600000A8: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000A9: {kind: ImportRefLoaded, arg0: import_ir_inst41, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000AA: {kind: ImportRefLoaded, arg0: import_ir_inst42, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000AB: {kind: ImportRefLoaded, arg0: import_ir_inst43, arg1: entity_name, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000AC: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000AD: {kind: ImportRefUnloaded, arg0: import_ir_inst45, arg1: entity_name} +// CHECK:STDOUT: inst600000AE: {kind: ImplWitnessTable, arg0: inst_block60000032, arg1: impl60000005} +// CHECK:STDOUT: inst600000AF: {kind: ImplWitness, arg0: inst600000AE, arg1: specific60000007, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000B0: {kind: SymbolicBindingPattern, arg0: entity_name60000018, type: type(inst60000018)} // CHECK:STDOUT: inst600000B1: {kind: ImportRefLoaded, arg0: import_ir_inst48, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000B2: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000B3: {kind: PointerType, arg0: inst600000B2, type: type(TypeType)} -// CHECK:STDOUT: inst600000B4: {kind: ImplWitness, arg0: inst600000AC, arg1: specific60000008, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000B5: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000061)} -// CHECK:STDOUT: inst600000B6: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} -// CHECK:STDOUT: inst600000B7: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000061)} -// CHECK:STDOUT: inst600000B8: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000065)} -// CHECK:STDOUT: inst600000B9: {kind: OutParamPattern, arg0: inst600000B8, arg1: call_param1, type: type(symbolic_constant60000065)} -// CHECK:STDOUT: inst600000BA: {kind: ValueBindingPattern, arg0: entity_name60000019, type: type(symbolic_constant60000065)} -// CHECK:STDOUT: inst600000BB: {kind: ValueParamPattern, arg0: inst600000BA, arg1: call_param0, type: type(symbolic_constant60000065)} -// CHECK:STDOUT: inst600000BC: {kind: InitForm, arg0: inst6000001C, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst600000BD: {kind: ImportRefLoaded, arg0: import_ir_inst51, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BE: {kind: ImportRefLoaded, arg0: import_ir_inst52, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BF: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000C0: {kind: PointerType, arg0: inst600000BF, type: type(TypeType)} -// CHECK:STDOUT: inst600000C1: {kind: PatternType, arg0: inst600000C0, type: type(TypeType)} -// CHECK:STDOUT: inst600000C2: {kind: InitForm, arg0: inst600000C0, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst600000C3: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} -// CHECK:STDOUT: inst600000C4: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000070)} -// CHECK:STDOUT: inst600000C5: {kind: RequireCompleteType, arg0: inst600000B3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000C6: {kind: ImportRefUnloaded, arg0: import_ir_inst5A, arg1: entity_name} -// CHECK:STDOUT: inst600000C7: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000C8: {kind: ImportRefLoaded, arg0: import_ir_inst5C, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000C9: {kind: ImportRefLoaded, arg0: import_ir_inst5D, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CA: {kind: ImportRefUnloaded, arg0: import_ir_inst5E, arg1: entity_name} -// CHECK:STDOUT: inst600000CB: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000B2: {kind: ImportRefLoaded, arg0: import_ir_inst49, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000B3: {kind: ImportRefLoaded, arg0: import_ir_inst4A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000B4: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst600000B5: {kind: PointerType, arg0: inst600000B4, type: type(TypeType)} +// CHECK:STDOUT: inst600000B6: {kind: ImplWitness, arg0: inst600000AE, arg1: specific60000008, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000B7: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000063)} +// CHECK:STDOUT: inst600000B8: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} +// CHECK:STDOUT: inst600000B9: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000063)} +// CHECK:STDOUT: inst600000BA: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000067)} +// CHECK:STDOUT: inst600000BB: {kind: OutParamPattern, arg0: inst600000BA, arg1: call_param1, type: type(symbolic_constant60000067)} +// CHECK:STDOUT: inst600000BC: {kind: ValueBindingPattern, arg0: entity_name60000019, type: type(symbolic_constant60000067)} +// CHECK:STDOUT: inst600000BD: {kind: ValueParamPattern, arg0: inst600000BC, arg1: call_param0, type: type(symbolic_constant60000067)} +// CHECK:STDOUT: inst600000BE: {kind: InitForm, arg0: inst6000001C, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000BF: {kind: ImportRefLoaded, arg0: import_ir_inst53, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C0: {kind: ImportRefLoaded, arg0: import_ir_inst54, arg1: entity_name, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000C1: {kind: ImportRefLoaded, arg0: import_ir_inst55, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C2: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst600000C3: {kind: PointerType, arg0: inst600000C2, type: type(TypeType)} +// CHECK:STDOUT: inst600000C4: {kind: PatternType, arg0: inst600000C3, type: type(TypeType)} +// CHECK:STDOUT: inst600000C5: {kind: InitForm, arg0: inst600000C3, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000C6: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} +// CHECK:STDOUT: inst600000C7: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000073)} +// CHECK:STDOUT: inst600000C8: {kind: RequireCompleteType, arg0: inst600000B5, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000C9: {kind: ImportRefUnloaded, arg0: import_ir_inst5D, arg1: entity_name} +// CHECK:STDOUT: inst600000CA: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000CB: {kind: ImportRefLoaded, arg0: import_ir_inst5F, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst600000CC: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CD: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CE: {kind: ImportRefUnloaded, arg0: import_ir_inst62, arg1: entity_name} -// CHECK:STDOUT: inst600000CF: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000D0: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst600000D1: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000D0, type: type(TypeType)} -// CHECK:STDOUT: inst600000D2: {kind: TupleType, arg0: inst_block6000003F, type: type(TypeType)} -// CHECK:STDOUT: inst600000D3: {kind: ImportRefUnloaded, arg0: import_ir_inst64, arg1: entity_name} -// CHECK:STDOUT: inst600000D4: {kind: ImplWitnessTable, arg0: inst_block60000040, arg1: impl60000008} -// CHECK:STDOUT: inst600000D5: {kind: ImplWitness, arg0: inst600000D4, arg1: specific6000000A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000D6: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant60000079)} -// CHECK:STDOUT: inst600000D7: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} -// CHECK:STDOUT: inst600000D8: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000079)} -// CHECK:STDOUT: inst600000D9: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} -// CHECK:STDOUT: inst600000DA: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000D9)} -// CHECK:STDOUT: inst600000DB: {kind: PatternType, arg0: inst600000D2, type: type(TypeType)} -// CHECK:STDOUT: inst600000DC: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DD: {kind: OutParamPattern, arg0: inst600000DC, arg1: call_param1, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DE: {kind: ValueBindingPattern, arg0: entity_name6000001D, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DF: {kind: ValueParamPattern, arg0: inst600000DE, arg1: call_param0, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000E0: {kind: InitForm, arg0: inst600000D2, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst600000E1: {kind: ImportRefLoaded, arg0: import_ir_inst6B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000E2: {kind: ImportRefLoaded, arg0: import_ir_inst6C, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst600000E3: {kind: ImportRefLoaded, arg0: import_ir_inst6D, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst600000E4: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst600000E5: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000E4, type: type(TypeType)} -// CHECK:STDOUT: inst600000E6: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst600000E7: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000E6, type: type(TypeType)} -// CHECK:STDOUT: inst600000E8: {kind: TupleType, arg0: inst_block60000048, type: type(TypeType)} -// CHECK:STDOUT: inst600000E9: {kind: PatternType, arg0: inst600000E8, type: type(TypeType)} -// CHECK:STDOUT: inst600000EA: {kind: InitForm, arg0: inst600000E8, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst600000EB: {kind: LookupImplWitness, arg0: inst600000D0, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EC: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000D0, type: type(TypeType)} -// CHECK:STDOUT: inst600000ED: {kind: ImplWitnessAccess, arg0: inst600000EB, arg1: element0, type: type(symbolic_constant60000092)} -// CHECK:STDOUT: inst600000EE: {kind: SpecificImplFunction, arg0: inst600000ED, arg1: specific6000000B, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000EF: {kind: InitForm, arg0: inst600000D1, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst600000F0: {kind: PatternType, arg0: inst600000D1, type: type(TypeType)} -// CHECK:STDOUT: inst600000F1: {kind: RequireCompleteType, arg0: inst600000D1, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F2: {kind: RequireCompleteType, arg0: inst600000D2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F3: {kind: RequireCompleteType, arg0: inst600000E8, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F4: {kind: RequireCompleteType, arg0: inst600000E5, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F5: {kind: LookupImplWitness, arg0: inst600000E4, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F6: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000E4, type: type(TypeType)} -// CHECK:STDOUT: inst600000F7: {kind: ImplWitnessAccess, arg0: inst600000F5, arg1: element0, type: type(symbolic_constant600000A7)} -// CHECK:STDOUT: inst600000F8: {kind: SpecificImplFunction, arg0: inst600000F7, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000F9: {kind: RequireCompleteType, arg0: inst600000E7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000FA: {kind: LookupImplWitness, arg0: inst600000E6, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000FB: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000E6, type: type(TypeType)} -// CHECK:STDOUT: inst600000FC: {kind: ImplWitnessAccess, arg0: inst600000FA, arg1: element0, type: type(symbolic_constant600000AC)} -// CHECK:STDOUT: inst600000FD: {kind: SpecificImplFunction, arg0: inst600000FC, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000FE: {kind: SymbolicBindingPattern, arg0: entity_name60000028, type: type(inst6000008E)} -// CHECK:STDOUT: inst600000FF: {kind: SymbolicBindingPattern, arg0: entity_name60000029, type: type(inst6000008E)} -// CHECK:STDOUT: inst60000100: {kind: ImportRefLoaded, arg0: import_ir_inst82, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000101: {kind: ImportRefLoaded, arg0: import_ir_inst83, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000102: {kind: ImportRefLoaded, arg0: import_ir_inst84, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000103: {kind: ImportRefLoaded, arg0: import_ir_inst85, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000104: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000105: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000106: {kind: TupleValue, arg0: inst_block60000052, type: type(inst600000D9)} -// CHECK:STDOUT: inst60000107: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000104, type: type(TypeType)} -// CHECK:STDOUT: inst60000108: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst60000105, type: type(TypeType)} -// CHECK:STDOUT: inst60000109: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} -// CHECK:STDOUT: inst6000010A: {kind: ImplWitness, arg0: inst600000D4, arg1: specific6000000F, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000010B: {kind: FunctionType, arg0: function60000004, arg1: specific6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst6000010C: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000BD)} -// CHECK:STDOUT: inst6000010D: {kind: ImportRefUnloaded, arg0: import_ir_inst8F, arg1: entity_name} -// CHECK:STDOUT: inst6000010E: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000010F: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000110: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst6000010F, type: type(TypeType)} -// CHECK:STDOUT: inst60000111: {kind: TupleType, arg0: inst_block60000058, type: type(TypeType)} -// CHECK:STDOUT: inst60000112: {kind: ImportRefUnloaded, arg0: import_ir_inst91, arg1: entity_name} -// CHECK:STDOUT: inst60000113: {kind: ImplWitnessTable, arg0: inst_block60000059, arg1: impl60000009} -// CHECK:STDOUT: inst60000114: {kind: ImplWitness, arg0: inst60000113, arg1: specific60000010, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000115: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000C5)} -// CHECK:STDOUT: inst60000116: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} -// CHECK:STDOUT: inst60000117: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C5)} -// CHECK:STDOUT: inst60000118: {kind: TupleType, arg0: inst_block6000005B, type: type(TypeType)} -// CHECK:STDOUT: inst60000119: {kind: TupleValue, arg0: inst_block6000005A, type: type(inst60000118)} -// CHECK:STDOUT: inst6000011A: {kind: PatternType, arg0: inst60000111, type: type(TypeType)} -// CHECK:STDOUT: inst6000011B: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011C: {kind: OutParamPattern, arg0: inst6000011B, arg1: call_param1, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011D: {kind: ValueBindingPattern, arg0: entity_name6000002C, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011E: {kind: ValueParamPattern, arg0: inst6000011D, arg1: call_param0, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011F: {kind: InitForm, arg0: inst60000111, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000120: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000121: {kind: ImportRefLoaded, arg0: import_ir_inst99, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000122: {kind: ImportRefLoaded, arg0: import_ir_inst9A, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000123: {kind: ImportRefLoaded, arg0: import_ir_inst9B, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000124: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000125: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000124, type: type(TypeType)} -// CHECK:STDOUT: inst60000126: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000127: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst60000126, type: type(TypeType)} -// CHECK:STDOUT: inst60000128: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000129: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst60000128, type: type(TypeType)} -// CHECK:STDOUT: inst6000012A: {kind: TupleType, arg0: inst_block60000061, type: type(TypeType)} -// CHECK:STDOUT: inst6000012B: {kind: PatternType, arg0: inst6000012A, type: type(TypeType)} -// CHECK:STDOUT: inst6000012C: {kind: InitForm, arg0: inst6000012A, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst6000012D: {kind: LookupImplWitness, arg0: inst6000010F, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012E: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000010F, type: type(TypeType)} -// CHECK:STDOUT: inst6000012F: {kind: ImplWitnessAccess, arg0: inst6000012D, arg1: element0, type: type(symbolic_constant600000E3)} -// CHECK:STDOUT: inst60000130: {kind: SpecificImplFunction, arg0: inst6000012F, arg1: specific60000011, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000131: {kind: InitForm, arg0: inst60000110, arg1: call_param1, type: type(inst(FormType))} -// CHECK:STDOUT: inst60000132: {kind: PatternType, arg0: inst60000110, type: type(TypeType)} -// CHECK:STDOUT: inst60000133: {kind: RequireCompleteType, arg0: inst60000110, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000134: {kind: RequireCompleteType, arg0: inst60000111, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000135: {kind: RequireCompleteType, arg0: inst6000012A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000136: {kind: RequireCompleteType, arg0: inst60000125, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000137: {kind: LookupImplWitness, arg0: inst60000124, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000138: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000124, type: type(TypeType)} -// CHECK:STDOUT: inst60000139: {kind: ImplWitnessAccess, arg0: inst60000137, arg1: element0, type: type(symbolic_constant600000FD)} -// CHECK:STDOUT: inst6000013A: {kind: SpecificImplFunction, arg0: inst60000139, arg1: specific60000013, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000013B: {kind: RequireCompleteType, arg0: inst60000127, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013C: {kind: LookupImplWitness, arg0: inst60000126, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013D: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000126, type: type(TypeType)} +// CHECK:STDOUT: inst600000CD: {kind: ImportRefUnloaded, arg0: import_ir_inst61, arg1: entity_name} +// CHECK:STDOUT: inst600000CE: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000CF: {kind: ImportRefLoaded, arg0: import_ir_inst63, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000D0: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000D1: {kind: ImportRefUnloaded, arg0: import_ir_inst65, arg1: entity_name} +// CHECK:STDOUT: inst600000D2: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000D3: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst600000D4: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000D3, type: type(TypeType)} +// CHECK:STDOUT: inst600000D5: {kind: TupleType, arg0: inst_block6000003F, type: type(TypeType)} +// CHECK:STDOUT: inst600000D6: {kind: ImportRefUnloaded, arg0: import_ir_inst67, arg1: entity_name} +// CHECK:STDOUT: inst600000D7: {kind: ImplWitnessTable, arg0: inst_block60000040, arg1: impl60000008} +// CHECK:STDOUT: inst600000D8: {kind: ImplWitness, arg0: inst600000D7, arg1: specific6000000A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000D9: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000007C)} +// CHECK:STDOUT: inst600000DA: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} +// CHECK:STDOUT: inst600000DB: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000007C)} +// CHECK:STDOUT: inst600000DC: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} +// CHECK:STDOUT: inst600000DD: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000DC)} +// CHECK:STDOUT: inst600000DE: {kind: PatternType, arg0: inst600000D5, type: type(TypeType)} +// CHECK:STDOUT: inst600000DF: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000082)} +// CHECK:STDOUT: inst600000E0: {kind: OutParamPattern, arg0: inst600000DF, arg1: call_param1, type: type(symbolic_constant60000082)} +// CHECK:STDOUT: inst600000E1: {kind: ValueBindingPattern, arg0: entity_name6000001D, type: type(symbolic_constant60000082)} +// CHECK:STDOUT: inst600000E2: {kind: ValueParamPattern, arg0: inst600000E1, arg1: call_param0, type: type(symbolic_constant60000082)} +// CHECK:STDOUT: inst600000E3: {kind: InitForm, arg0: inst600000D5, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000E4: {kind: ImportRefLoaded, arg0: import_ir_inst6E, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000E5: {kind: ImportRefLoaded, arg0: import_ir_inst6F, arg1: entity_name, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000E6: {kind: ImportRefLoaded, arg0: import_ir_inst70, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst600000E7: {kind: ImportRefLoaded, arg0: import_ir_inst71, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst600000E8: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst600000E9: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000E8, type: type(TypeType)} +// CHECK:STDOUT: inst600000EA: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst600000EB: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000EA, type: type(TypeType)} +// CHECK:STDOUT: inst600000EC: {kind: TupleType, arg0: inst_block60000048, type: type(TypeType)} +// CHECK:STDOUT: inst600000ED: {kind: PatternType, arg0: inst600000EC, type: type(TypeType)} +// CHECK:STDOUT: inst600000EE: {kind: InitForm, arg0: inst600000EC, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000EF: {kind: LookupImplWitness, arg0: inst600000D3, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F0: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000D3, type: type(TypeType)} +// CHECK:STDOUT: inst600000F1: {kind: ImplWitnessAccess, arg0: inst600000EF, arg1: element0, type: type(symbolic_constant60000096)} +// CHECK:STDOUT: inst600000F2: {kind: SpecificImplFunction, arg0: inst600000F1, arg1: specific6000000B, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000F3: {kind: InitForm, arg0: inst600000D4, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst600000F4: {kind: PatternType, arg0: inst600000D4, type: type(TypeType)} +// CHECK:STDOUT: inst600000F5: {kind: RequireCompleteType, arg0: inst600000D4, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F6: {kind: RequireCompleteType, arg0: inst600000D5, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F7: {kind: RequireCompleteType, arg0: inst600000EC, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F8: {kind: RequireCompleteType, arg0: inst600000E9, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F9: {kind: LookupImplWitness, arg0: inst600000E8, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000FA: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000E8, type: type(TypeType)} +// CHECK:STDOUT: inst600000FB: {kind: ImplWitnessAccess, arg0: inst600000F9, arg1: element0, type: type(symbolic_constant600000AB)} +// CHECK:STDOUT: inst600000FC: {kind: SpecificImplFunction, arg0: inst600000FB, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000FD: {kind: RequireCompleteType, arg0: inst600000EB, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000FE: {kind: LookupImplWitness, arg0: inst600000EA, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000FF: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst600000EA, type: type(TypeType)} +// CHECK:STDOUT: inst60000100: {kind: ImplWitnessAccess, arg0: inst600000FE, arg1: element0, type: type(symbolic_constant600000B0)} +// CHECK:STDOUT: inst60000101: {kind: SpecificImplFunction, arg0: inst60000100, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000102: {kind: SymbolicBindingPattern, arg0: entity_name60000028, type: type(inst60000090)} +// CHECK:STDOUT: inst60000103: {kind: SymbolicBindingPattern, arg0: entity_name60000029, type: type(inst60000090)} +// CHECK:STDOUT: inst60000104: {kind: ImportRefLoaded, arg0: import_ir_inst86, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000105: {kind: ImportRefLoaded, arg0: import_ir_inst87, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000106: {kind: ImportRefLoaded, arg0: import_ir_inst88, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000107: {kind: ImportRefLoaded, arg0: import_ir_inst89, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000108: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000109: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000010A: {kind: TupleValue, arg0: inst_block60000052, type: type(inst600000DC)} +// CHECK:STDOUT: inst6000010B: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000108, type: type(TypeType)} +// CHECK:STDOUT: inst6000010C: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst60000109, type: type(TypeType)} +// CHECK:STDOUT: inst6000010D: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} +// CHECK:STDOUT: inst6000010E: {kind: ImplWitness, arg0: inst600000D7, arg1: specific6000000F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000010F: {kind: FunctionType, arg0: function60000004, arg1: specific6000000F, type: type(TypeType)} +// CHECK:STDOUT: inst60000110: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C1)} +// CHECK:STDOUT: inst60000111: {kind: ImportRefUnloaded, arg0: import_ir_inst93, arg1: entity_name} +// CHECK:STDOUT: inst60000112: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000113: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000114: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst60000113, type: type(TypeType)} +// CHECK:STDOUT: inst60000115: {kind: TupleType, arg0: inst_block60000058, type: type(TypeType)} +// CHECK:STDOUT: inst60000116: {kind: ImportRefUnloaded, arg0: import_ir_inst95, arg1: entity_name} +// CHECK:STDOUT: inst60000117: {kind: ImplWitnessTable, arg0: inst_block60000059, arg1: impl60000009} +// CHECK:STDOUT: inst60000118: {kind: ImplWitness, arg0: inst60000117, arg1: specific60000010, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000119: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000C9)} +// CHECK:STDOUT: inst6000011A: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} +// CHECK:STDOUT: inst6000011B: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C9)} +// CHECK:STDOUT: inst6000011C: {kind: TupleType, arg0: inst_block6000005B, type: type(TypeType)} +// CHECK:STDOUT: inst6000011D: {kind: TupleValue, arg0: inst_block6000005A, type: type(inst6000011C)} +// CHECK:STDOUT: inst6000011E: {kind: PatternType, arg0: inst60000115, type: type(TypeType)} +// CHECK:STDOUT: inst6000011F: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000CF)} +// CHECK:STDOUT: inst60000120: {kind: OutParamPattern, arg0: inst6000011F, arg1: call_param1, type: type(symbolic_constant600000CF)} +// CHECK:STDOUT: inst60000121: {kind: ValueBindingPattern, arg0: entity_name6000002C, type: type(symbolic_constant600000CF)} +// CHECK:STDOUT: inst60000122: {kind: ValueParamPattern, arg0: inst60000121, arg1: call_param0, type: type(symbolic_constant600000CF)} +// CHECK:STDOUT: inst60000123: {kind: InitForm, arg0: inst60000115, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000124: {kind: ImportRefLoaded, arg0: import_ir_inst9C, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000125: {kind: ImportRefLoaded, arg0: import_ir_inst9D, arg1: entity_name, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000126: {kind: ImportRefLoaded, arg0: import_ir_inst9E, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000127: {kind: ImportRefLoaded, arg0: import_ir_inst9F, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000128: {kind: ImportRefLoaded, arg0: import_ir_instA0, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000129: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000012A: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000129, type: type(TypeType)} +// CHECK:STDOUT: inst6000012B: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000012C: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst6000012B, type: type(TypeType)} +// CHECK:STDOUT: inst6000012D: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst6000012E: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst6000012D, type: type(TypeType)} +// CHECK:STDOUT: inst6000012F: {kind: TupleType, arg0: inst_block60000061, type: type(TypeType)} +// CHECK:STDOUT: inst60000130: {kind: PatternType, arg0: inst6000012F, type: type(TypeType)} +// CHECK:STDOUT: inst60000131: {kind: InitForm, arg0: inst6000012F, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000132: {kind: LookupImplWitness, arg0: inst60000113, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000133: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000113, type: type(TypeType)} +// CHECK:STDOUT: inst60000134: {kind: ImplWitnessAccess, arg0: inst60000132, arg1: element0, type: type(symbolic_constant600000E8)} +// CHECK:STDOUT: inst60000135: {kind: SpecificImplFunction, arg0: inst60000134, arg1: specific60000011, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000136: {kind: InitForm, arg0: inst60000114, arg1: call_param1, type: type(inst(FormType))} +// CHECK:STDOUT: inst60000137: {kind: PatternType, arg0: inst60000114, type: type(TypeType)} +// CHECK:STDOUT: inst60000138: {kind: RequireCompleteType, arg0: inst60000114, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000139: {kind: RequireCompleteType, arg0: inst60000115, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013A: {kind: RequireCompleteType, arg0: inst6000012F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013B: {kind: RequireCompleteType, arg0: inst6000012A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013C: {kind: LookupImplWitness, arg0: inst60000129, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013D: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000129, type: type(TypeType)} // CHECK:STDOUT: inst6000013E: {kind: ImplWitnessAccess, arg0: inst6000013C, arg1: element0, type: type(symbolic_constant60000102)} -// CHECK:STDOUT: inst6000013F: {kind: SpecificImplFunction, arg0: inst6000013E, arg1: specific60000014, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000140: {kind: RequireCompleteType, arg0: inst60000129, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000141: {kind: LookupImplWitness, arg0: inst60000128, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000142: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000128, type: type(TypeType)} +// CHECK:STDOUT: inst6000013F: {kind: SpecificImplFunction, arg0: inst6000013E, arg1: specific60000013, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000140: {kind: RequireCompleteType, arg0: inst6000012C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000141: {kind: LookupImplWitness, arg0: inst6000012B, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000142: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000012B, type: type(TypeType)} // CHECK:STDOUT: inst60000143: {kind: ImplWitnessAccess, arg0: inst60000141, arg1: element0, type: type(symbolic_constant60000107)} -// CHECK:STDOUT: inst60000144: {kind: SpecificImplFunction, arg0: inst60000143, arg1: specific60000015, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000145: {kind: SymbolicBindingPattern, arg0: entity_name6000003C, type: type(inst6000008E)} -// CHECK:STDOUT: inst60000146: {kind: SymbolicBindingPattern, arg0: entity_name6000003D, type: type(inst6000008E)} -// CHECK:STDOUT: inst60000147: {kind: SymbolicBindingPattern, arg0: entity_name6000003E, type: type(inst6000008E)} -// CHECK:STDOUT: inst60000148: {kind: ImportRefLoaded, arg0: import_ir_instB8, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000149: {kind: ImportRefLoaded, arg0: import_ir_instB9, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000014A: {kind: ImportRefLoaded, arg0: import_ir_instBA, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000014B: {kind: ImportRefLoaded, arg0: import_ir_instBB, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000014C: {kind: ImportRefLoaded, arg0: import_ir_instBC, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000014D: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000014E: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000014F: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000150: {kind: TupleValue, arg0: inst_block6000006C, type: type(inst60000118)} -// CHECK:STDOUT: inst60000151: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000014D, type: type(TypeType)} -// CHECK:STDOUT: inst60000152: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst6000014E, type: type(TypeType)} -// CHECK:STDOUT: inst60000153: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst6000014F, type: type(TypeType)} -// CHECK:STDOUT: inst60000154: {kind: TupleType, arg0: inst_block6000006D, type: type(TypeType)} -// CHECK:STDOUT: inst60000155: {kind: ImplWitness, arg0: inst60000113, arg1: specific60000016, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000156: {kind: FunctionType, arg0: function60000005, arg1: specific60000016, type: type(TypeType)} -// CHECK:STDOUT: inst60000157: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000011C)} -// CHECK:STDOUT: inst60000158: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst60000159: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst6000015A: {kind: RequireSpecificDefinition, arg0: specific60000017, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst6000015B: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000015C: {kind: LookupImplWitness, arg0: inst6000001D, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000015D: {kind: FacetValue, arg0: inst6000001C, arg1: inst_block60000074, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000015E: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000015D, type: type(TypeType)} -// CHECK:STDOUT: inst6000015F: {kind: ImplWitnessAccess, arg0: inst6000015B, arg1: element0, type: type(symbolic_constant60000127)} -// CHECK:STDOUT: inst60000160: {kind: ImplWitnessAccess, arg0: inst6000015B, arg1: element0, type: type(symbolic_constant60000124)} -// CHECK:STDOUT: inst60000161: {kind: FacetValue, arg0: inst6000001D, arg1: inst_block60000075, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000162: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000161, type: type(TypeType)} -// CHECK:STDOUT: inst60000163: {kind: ImplWitnessAccess, arg0: inst6000015C, arg1: element0, type: type(symbolic_constant60000127)} -// CHECK:STDOUT: inst60000164: {kind: BoundMethod, arg0: inst60000047, arg1: inst6000015F, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst60000165: {kind: SpecificImplFunction, arg0: inst6000015F, arg1: specific60000018, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000166: {kind: SpecificImplFunction, arg0: inst60000160, arg1: specific60000018, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000167: {kind: SpecificImplFunction, arg0: inst60000163, arg1: specific60000019, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000168: {kind: BoundMethod, arg0: inst60000047, arg1: inst60000165, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst60000169: {kind: RequireCompleteType, arg0: inst6000001C, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000016A: {kind: Call, arg0: inst60000168, arg1: inst_block60000079, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst6000016B: {kind: InitializeFrom, arg0: inst6000016A, arg1: inst6000004B, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst6000016C: {kind: TupleAccess, arg0: inst6000003B, arg1: element1, type: type(inst60000025)} -// CHECK:STDOUT: inst6000016D: {kind: TupleInit, arg0: inst_block_empty, arg1: inst6000016C, type: type(inst60000025)} -// CHECK:STDOUT: inst6000016E: {kind: Converted, arg0: inst60000048, arg1: inst6000016D, type: type(inst60000025)} -// CHECK:STDOUT: inst6000016F: {kind: TupleInit, arg0: inst_block6000007A, arg1: inst6000003B, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000170: {kind: Converted, arg0: inst60000049, arg1: inst6000016F, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000171: {kind: ReturnExpr, arg0: inst60000170, arg1: inst6000003B} +// CHECK:STDOUT: inst60000144: {kind: SpecificImplFunction, arg0: inst60000143, arg1: specific60000014, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000145: {kind: RequireCompleteType, arg0: inst6000012E, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000146: {kind: LookupImplWitness, arg0: inst6000012D, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000147: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst6000012D, type: type(TypeType)} +// CHECK:STDOUT: inst60000148: {kind: ImplWitnessAccess, arg0: inst60000146, arg1: element0, type: type(symbolic_constant6000010C)} +// CHECK:STDOUT: inst60000149: {kind: SpecificImplFunction, arg0: inst60000148, arg1: specific60000015, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000014A: {kind: SymbolicBindingPattern, arg0: entity_name6000003C, type: type(inst60000090)} +// CHECK:STDOUT: inst6000014B: {kind: SymbolicBindingPattern, arg0: entity_name6000003D, type: type(inst60000090)} +// CHECK:STDOUT: inst6000014C: {kind: SymbolicBindingPattern, arg0: entity_name6000003E, type: type(inst60000090)} +// CHECK:STDOUT: inst6000014D: {kind: ImportRefLoaded, arg0: import_ir_instBD, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000014E: {kind: ImportRefLoaded, arg0: import_ir_instBE, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000014F: {kind: ImportRefLoaded, arg0: import_ir_instBF, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000150: {kind: ImportRefLoaded, arg0: import_ir_instC0, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000151: {kind: ImportRefLoaded, arg0: import_ir_instC1, arg1: entity_name, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000152: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000153: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000154: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000155: {kind: TupleValue, arg0: inst_block6000006C, type: type(inst6000011C)} +// CHECK:STDOUT: inst60000156: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000152, type: type(TypeType)} +// CHECK:STDOUT: inst60000157: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst60000153, type: type(TypeType)} +// CHECK:STDOUT: inst60000158: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst60000154, type: type(TypeType)} +// CHECK:STDOUT: inst60000159: {kind: TupleType, arg0: inst_block6000006D, type: type(TypeType)} +// CHECK:STDOUT: inst6000015A: {kind: ImplWitness, arg0: inst60000117, arg1: specific60000016, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000015B: {kind: FunctionType, arg0: function60000005, arg1: specific60000016, type: type(TypeType)} +// CHECK:STDOUT: inst6000015C: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000121)} +// CHECK:STDOUT: inst6000015D: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst6000015E: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst6000015F: {kind: RequireSpecificDefinition, arg0: specific60000017, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst60000160: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000161: {kind: LookupImplWitness, arg0: inst6000001D, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000162: {kind: FacetValue, arg0: inst6000001C, arg1: inst_block60000074, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000163: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000162, type: type(TypeType)} +// CHECK:STDOUT: inst60000164: {kind: ImplWitnessAccess, arg0: inst60000160, arg1: element0, type: type(symbolic_constant6000012C)} +// CHECK:STDOUT: inst60000165: {kind: ImplWitnessAccess, arg0: inst60000160, arg1: element0, type: type(symbolic_constant60000129)} +// CHECK:STDOUT: inst60000166: {kind: FacetValue, arg0: inst6000001D, arg1: inst_block60000075, type: type(inst6000004F)} +// CHECK:STDOUT: inst60000167: {kind: FunctionTypeWithSelfType, arg0: inst60000058, arg1: inst60000166, type: type(TypeType)} +// CHECK:STDOUT: inst60000168: {kind: ImplWitnessAccess, arg0: inst60000161, arg1: element0, type: type(symbolic_constant6000012C)} +// CHECK:STDOUT: inst60000169: {kind: BoundMethod, arg0: inst60000047, arg1: inst60000164, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst6000016A: {kind: SpecificImplFunction, arg0: inst60000164, arg1: specific60000018, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000016B: {kind: SpecificImplFunction, arg0: inst60000165, arg1: specific60000018, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000016C: {kind: SpecificImplFunction, arg0: inst60000168, arg1: specific60000019, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000016D: {kind: BoundMethod, arg0: inst60000047, arg1: inst6000016A, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst6000016E: {kind: RequireCompleteType, arg0: inst6000001C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000016F: {kind: Call, arg0: inst6000016D, arg1: inst_block60000079, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000170: {kind: InitializeFrom, arg0: inst6000016F, arg1: inst6000004B, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000171: {kind: TupleAccess, arg0: inst6000003B, arg1: element1, type: type(inst60000025)} +// CHECK:STDOUT: inst60000172: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000171, type: type(inst60000025)} +// CHECK:STDOUT: inst60000173: {kind: Converted, arg0: inst60000048, arg1: inst60000172, type: type(inst60000025)} +// CHECK:STDOUT: inst60000174: {kind: TupleInit, arg0: inst_block6000007A, arg1: inst6000003B, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000175: {kind: Converted, arg0: inst60000049, arg1: inst60000174, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000176: {kind: ReturnExpr, arg0: inst60000175, arg1: inst6000003B} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: instF: concrete_constant(instF) @@ -831,34 +841,34 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst6000005E: concrete_constant(inst6000005E) // CHECK:STDOUT: inst6000005F: concrete_constant(inst6000005F) // CHECK:STDOUT: inst60000060: symbolic_constant60000018 -// CHECK:STDOUT: inst60000061: symbolic_constant6000001C -// CHECK:STDOUT: inst60000062: symbolic_constant60000014 -// CHECK:STDOUT: inst60000063: symbolic_constant6000001D +// CHECK:STDOUT: inst60000061: symbolic_constant6000001D +// CHECK:STDOUT: inst60000062: symbolic_constant6000001C +// CHECK:STDOUT: inst60000063: symbolic_constant60000014 // CHECK:STDOUT: inst60000064: symbolic_constant6000001E // CHECK:STDOUT: inst60000065: symbolic_constant6000001F // CHECK:STDOUT: inst60000066: symbolic_constant60000020 -// CHECK:STDOUT: inst60000067: symbolic_constant60000122 -// CHECK:STDOUT: inst60000068: constant -// CHECK:STDOUT: inst60000069: concrete_constant(inst60000069) -// CHECK:STDOUT: inst6000006A: symbolic_constant60000021 +// CHECK:STDOUT: inst60000067: symbolic_constant60000021 +// CHECK:STDOUT: inst60000068: symbolic_constant60000127 +// CHECK:STDOUT: inst60000069: constant +// CHECK:STDOUT: inst6000006A: concrete_constant(inst6000006A) // CHECK:STDOUT: inst6000006B: symbolic_constant60000022 // CHECK:STDOUT: inst6000006C: symbolic_constant60000023 -// CHECK:STDOUT: inst6000006D: constant -// CHECK:STDOUT: inst6000006E: concrete_constant(inst6000006E) -// CHECK:STDOUT: inst6000006F: symbolic_constant60000025 -// CHECK:STDOUT: inst60000070: symbolic_constant60000029 -// CHECK:STDOUT: inst60000071: symbolic_constant60000027 +// CHECK:STDOUT: inst6000006D: symbolic_constant60000024 +// CHECK:STDOUT: inst6000006E: constant +// CHECK:STDOUT: inst6000006F: concrete_constant(inst6000006F) +// CHECK:STDOUT: inst60000070: symbolic_constant60000026 +// CHECK:STDOUT: inst60000071: symbolic_constant6000002A // CHECK:STDOUT: inst60000072: symbolic_constant60000028 -// CHECK:STDOUT: inst60000073: symbolic_constant6000002B -// CHECK:STDOUT: inst60000074: concrete_constant(inst60000074) +// CHECK:STDOUT: inst60000073: symbolic_constant60000029 +// CHECK:STDOUT: inst60000074: symbolic_constant6000002C // CHECK:STDOUT: inst60000075: concrete_constant(inst60000075) // CHECK:STDOUT: inst60000076: concrete_constant(inst60000076) // CHECK:STDOUT: inst60000077: concrete_constant(inst60000077) -// CHECK:STDOUT: inst60000078: symbolic_constant6000002D -// CHECK:STDOUT: inst60000079: symbolic_constant60000033 -// CHECK:STDOUT: inst6000007A: symbolic_constant60000032 +// CHECK:STDOUT: inst60000078: concrete_constant(inst60000078) +// CHECK:STDOUT: inst60000079: symbolic_constant6000002E +// CHECK:STDOUT: inst6000007A: symbolic_constant60000035 // CHECK:STDOUT: inst6000007B: symbolic_constant60000034 -// CHECK:STDOUT: inst6000007C: symbolic_constant60000035 +// CHECK:STDOUT: inst6000007C: symbolic_constant60000033 // CHECK:STDOUT: inst6000007D: symbolic_constant60000036 // CHECK:STDOUT: inst6000007E: symbolic_constant60000037 // CHECK:STDOUT: inst6000007F: symbolic_constant60000038 @@ -866,106 +876,106 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000081: symbolic_constant6000003A // CHECK:STDOUT: inst60000082: symbolic_constant6000003B // CHECK:STDOUT: inst60000083: symbolic_constant6000003C -// CHECK:STDOUT: inst60000084: symbolic_constant6000003E -// CHECK:STDOUT: inst60000085: symbolic_constant6000003F -// CHECK:STDOUT: inst60000086: symbolic_constant60000043 -// CHECK:STDOUT: inst60000087: symbolic_constant60000045 -// CHECK:STDOUT: inst60000088: symbolic_constant60000047 -// CHECK:STDOUT: inst60000089: symbolic_constant60000048 +// CHECK:STDOUT: inst60000084: symbolic_constant6000003D +// CHECK:STDOUT: inst60000085: symbolic_constant6000003E +// CHECK:STDOUT: inst60000086: symbolic_constant60000040 +// CHECK:STDOUT: inst60000087: symbolic_constant60000041 +// CHECK:STDOUT: inst60000088: symbolic_constant60000045 +// CHECK:STDOUT: inst60000089: symbolic_constant60000047 // CHECK:STDOUT: inst6000008A: symbolic_constant60000049 // CHECK:STDOUT: inst6000008B: symbolic_constant6000004A // CHECK:STDOUT: inst6000008C: symbolic_constant6000004B // CHECK:STDOUT: inst6000008D: symbolic_constant6000004C -// CHECK:STDOUT: inst6000008E: concrete_constant(inst6000008E) -// CHECK:STDOUT: inst6000008F: concrete_constant(inst6000008F) -// CHECK:STDOUT: inst60000090: symbolic_constant60000024 -// CHECK:STDOUT: inst60000091: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst60000092: symbolic_constant60000032 -// CHECK:STDOUT: inst60000093: symbolic_constant60000050 -// CHECK:STDOUT: inst60000094: symbolic_constant60000051 +// CHECK:STDOUT: inst6000008E: symbolic_constant6000004D +// CHECK:STDOUT: inst6000008F: symbolic_constant6000004E +// CHECK:STDOUT: inst60000090: concrete_constant(inst60000090) +// CHECK:STDOUT: inst60000091: concrete_constant(inst60000091) +// CHECK:STDOUT: inst60000092: symbolic_constant60000025 +// CHECK:STDOUT: inst60000093: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst60000094: symbolic_constant60000033 // CHECK:STDOUT: inst60000095: symbolic_constant60000052 // CHECK:STDOUT: inst60000096: symbolic_constant60000053 -// CHECK:STDOUT: inst60000097: symbolic_constant60000055 -// CHECK:STDOUT: inst60000098: symbolic_constant60000056 -// CHECK:STDOUT: inst60000099: constant -// CHECK:STDOUT: inst6000009A: concrete_constant(inst6000009A) -// CHECK:STDOUT: inst6000009B: concrete_constant(inst(BoolType)) -// CHECK:STDOUT: inst6000009C: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst6000009D: constant -// CHECK:STDOUT: inst6000009E: concrete_constant(inst6000009E) -// CHECK:STDOUT: inst6000009F: concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: inst600000A0: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000A1: constant -// CHECK:STDOUT: inst600000A2: concrete_constant(inst600000A2) -// CHECK:STDOUT: inst600000A3: concrete_constant(inst(FloatLiteralType)) -// CHECK:STDOUT: inst600000A4: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000A5: constant -// CHECK:STDOUT: inst600000A6: concrete_constant(inst600000A6) -// CHECK:STDOUT: inst600000A7: concrete_constant(inst(IntLiteralType)) -// CHECK:STDOUT: inst600000A8: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000A9: symbolic_constant6000011E -// CHECK:STDOUT: inst600000AA: concrete_constant(inst600000AA) -// CHECK:STDOUT: inst600000AB: constant +// CHECK:STDOUT: inst60000097: symbolic_constant60000054 +// CHECK:STDOUT: inst60000098: symbolic_constant60000055 +// CHECK:STDOUT: inst60000099: symbolic_constant60000057 +// CHECK:STDOUT: inst6000009A: symbolic_constant60000058 +// CHECK:STDOUT: inst6000009B: constant +// CHECK:STDOUT: inst6000009C: concrete_constant(inst6000009C) +// CHECK:STDOUT: inst6000009D: concrete_constant(inst(BoolType)) +// CHECK:STDOUT: inst6000009E: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst6000009F: constant +// CHECK:STDOUT: inst600000A0: concrete_constant(inst600000A0) +// CHECK:STDOUT: inst600000A1: concrete_constant(inst(CharLiteralType)) +// CHECK:STDOUT: inst600000A2: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst600000A3: constant +// CHECK:STDOUT: inst600000A4: concrete_constant(inst600000A4) +// CHECK:STDOUT: inst600000A5: concrete_constant(inst(FloatLiteralType)) +// CHECK:STDOUT: inst600000A6: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst600000A7: constant +// CHECK:STDOUT: inst600000A8: concrete_constant(inst600000A8) +// CHECK:STDOUT: inst600000A9: concrete_constant(inst(IntLiteralType)) +// CHECK:STDOUT: inst600000AA: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst600000AB: symbolic_constant60000123 // CHECK:STDOUT: inst600000AC: concrete_constant(inst600000AC) -// CHECK:STDOUT: inst600000AD: symbolic_constant60000058 +// CHECK:STDOUT: inst600000AD: constant // CHECK:STDOUT: inst600000AE: concrete_constant(inst600000AE) -// CHECK:STDOUT: inst600000AF: symbolic_constant60000057 -// CHECK:STDOUT: inst600000B0: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000B1: symbolic_constant6000005C -// CHECK:STDOUT: inst600000B2: symbolic_constant6000005D +// CHECK:STDOUT: inst600000AF: symbolic_constant6000005A +// CHECK:STDOUT: inst600000B0: concrete_constant(inst600000B0) +// CHECK:STDOUT: inst600000B1: symbolic_constant60000059 +// CHECK:STDOUT: inst600000B2: concrete_constant(inst6000004F) // CHECK:STDOUT: inst600000B3: symbolic_constant6000005E // CHECK:STDOUT: inst600000B4: symbolic_constant6000005F -// CHECK:STDOUT: inst600000B5: symbolic_constant60000063 +// CHECK:STDOUT: inst600000B5: symbolic_constant60000060 // CHECK:STDOUT: inst600000B6: symbolic_constant60000061 -// CHECK:STDOUT: inst600000B7: symbolic_constant60000062 -// CHECK:STDOUT: inst600000B8: concrete_constant(inst600000B8) -// CHECK:STDOUT: inst600000B9: concrete_constant(inst600000B9) +// CHECK:STDOUT: inst600000B7: symbolic_constant60000065 +// CHECK:STDOUT: inst600000B8: symbolic_constant60000063 +// CHECK:STDOUT: inst600000B9: symbolic_constant60000064 // CHECK:STDOUT: inst600000BA: concrete_constant(inst600000BA) // CHECK:STDOUT: inst600000BB: concrete_constant(inst600000BB) -// CHECK:STDOUT: inst600000BC: symbolic_constant60000066 -// CHECK:STDOUT: inst600000BD: symbolic_constant6000006A -// CHECK:STDOUT: inst600000BE: symbolic_constant6000005C -// CHECK:STDOUT: inst600000BF: symbolic_constant6000006B +// CHECK:STDOUT: inst600000BC: concrete_constant(inst600000BC) +// CHECK:STDOUT: inst600000BD: concrete_constant(inst600000BD) +// CHECK:STDOUT: inst600000BE: symbolic_constant60000068 +// CHECK:STDOUT: inst600000BF: symbolic_constant6000006D // CHECK:STDOUT: inst600000C0: symbolic_constant6000006C -// CHECK:STDOUT: inst600000C1: symbolic_constant6000006D +// CHECK:STDOUT: inst600000C1: symbolic_constant6000005E // CHECK:STDOUT: inst600000C2: symbolic_constant6000006E -// CHECK:STDOUT: inst600000C3: symbolic_constant60000070 -// CHECK:STDOUT: inst600000C4: symbolic_constant60000071 -// CHECK:STDOUT: inst600000C5: symbolic_constant60000072 -// CHECK:STDOUT: inst600000C6: constant -// CHECK:STDOUT: inst600000C7: concrete_constant(inst600000C7) -// CHECK:STDOUT: inst600000C8: concrete_constant(inst(TypeType)) -// CHECK:STDOUT: inst600000C9: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000CA: constant -// CHECK:STDOUT: inst600000CB: concrete_constant(inst600000CB) -// CHECK:STDOUT: inst600000CC: concrete_constant(inst60000025) -// CHECK:STDOUT: inst600000CD: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst600000CE: constant -// CHECK:STDOUT: inst600000CF: concrete_constant(inst600000CF) -// CHECK:STDOUT: inst600000D0: symbolic_constant60000073 -// CHECK:STDOUT: inst600000D1: symbolic_constant60000074 -// CHECK:STDOUT: inst600000D2: symbolic_constant60000075 -// CHECK:STDOUT: inst600000D3: constant -// CHECK:STDOUT: inst600000D4: concrete_constant(inst600000D4) -// CHECK:STDOUT: inst600000D5: symbolic_constant60000077 -// CHECK:STDOUT: inst600000D6: symbolic_constant6000007B -// CHECK:STDOUT: inst600000D7: symbolic_constant60000079 +// CHECK:STDOUT: inst600000C3: symbolic_constant6000006F +// CHECK:STDOUT: inst600000C4: symbolic_constant60000070 +// CHECK:STDOUT: inst600000C5: symbolic_constant60000071 +// CHECK:STDOUT: inst600000C6: symbolic_constant60000073 +// CHECK:STDOUT: inst600000C7: symbolic_constant60000074 +// CHECK:STDOUT: inst600000C8: symbolic_constant60000075 +// CHECK:STDOUT: inst600000C9: constant +// CHECK:STDOUT: inst600000CA: concrete_constant(inst600000CA) +// CHECK:STDOUT: inst600000CB: concrete_constant(inst(TypeType)) +// CHECK:STDOUT: inst600000CC: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst600000CD: constant +// CHECK:STDOUT: inst600000CE: concrete_constant(inst600000CE) +// CHECK:STDOUT: inst600000CF: concrete_constant(inst60000025) +// CHECK:STDOUT: inst600000D0: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst600000D1: constant +// CHECK:STDOUT: inst600000D2: concrete_constant(inst600000D2) +// CHECK:STDOUT: inst600000D3: symbolic_constant60000076 +// CHECK:STDOUT: inst600000D4: symbolic_constant60000077 +// CHECK:STDOUT: inst600000D5: symbolic_constant60000078 +// CHECK:STDOUT: inst600000D6: constant +// CHECK:STDOUT: inst600000D7: concrete_constant(inst600000D7) // CHECK:STDOUT: inst600000D8: symbolic_constant6000007A -// CHECK:STDOUT: inst600000D9: concrete_constant(inst600000D9) -// CHECK:STDOUT: inst600000DA: symbolic_constant6000007D -// CHECK:STDOUT: inst600000DB: symbolic_constant6000007E +// CHECK:STDOUT: inst600000D9: symbolic_constant6000007E +// CHECK:STDOUT: inst600000DA: symbolic_constant6000007C +// CHECK:STDOUT: inst600000DB: symbolic_constant6000007D // CHECK:STDOUT: inst600000DC: concrete_constant(inst600000DC) -// CHECK:STDOUT: inst600000DD: concrete_constant(inst600000DD) -// CHECK:STDOUT: inst600000DE: concrete_constant(inst600000DE) +// CHECK:STDOUT: inst600000DD: symbolic_constant60000080 +// CHECK:STDOUT: inst600000DE: symbolic_constant60000081 // CHECK:STDOUT: inst600000DF: concrete_constant(inst600000DF) -// CHECK:STDOUT: inst600000E0: symbolic_constant60000080 -// CHECK:STDOUT: inst600000E1: symbolic_constant60000089 -// CHECK:STDOUT: inst600000E2: symbolic_constant60000088 -// CHECK:STDOUT: inst600000E3: symbolic_constant60000087 -// CHECK:STDOUT: inst600000E4: symbolic_constant6000008A -// CHECK:STDOUT: inst600000E5: symbolic_constant6000008B -// CHECK:STDOUT: inst600000E6: symbolic_constant6000008C -// CHECK:STDOUT: inst600000E7: symbolic_constant6000008D +// CHECK:STDOUT: inst600000E0: concrete_constant(inst600000E0) +// CHECK:STDOUT: inst600000E1: concrete_constant(inst600000E1) +// CHECK:STDOUT: inst600000E2: concrete_constant(inst600000E2) +// CHECK:STDOUT: inst600000E3: symbolic_constant60000083 +// CHECK:STDOUT: inst600000E4: symbolic_constant6000008D +// CHECK:STDOUT: inst600000E5: symbolic_constant6000008C +// CHECK:STDOUT: inst600000E6: symbolic_constant6000008B +// CHECK:STDOUT: inst600000E7: symbolic_constant6000008A // CHECK:STDOUT: inst600000E8: symbolic_constant6000008E // CHECK:STDOUT: inst600000E9: symbolic_constant6000008F // CHECK:STDOUT: inst600000EA: symbolic_constant60000090 @@ -973,14 +983,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000EC: symbolic_constant60000092 // CHECK:STDOUT: inst600000ED: symbolic_constant60000093 // CHECK:STDOUT: inst600000EE: symbolic_constant60000094 -// CHECK:STDOUT: inst600000EF: symbolic_constant60000096 -// CHECK:STDOUT: inst600000F0: symbolic_constant60000097 -// CHECK:STDOUT: inst600000F1: symbolic_constant6000009B -// CHECK:STDOUT: inst600000F2: symbolic_constant600000A2 -// CHECK:STDOUT: inst600000F3: symbolic_constant600000A4 -// CHECK:STDOUT: inst600000F4: symbolic_constant600000A5 -// CHECK:STDOUT: inst600000F5: symbolic_constant600000A6 -// CHECK:STDOUT: inst600000F6: symbolic_constant600000A7 +// CHECK:STDOUT: inst600000EF: symbolic_constant60000095 +// CHECK:STDOUT: inst600000F0: symbolic_constant60000096 +// CHECK:STDOUT: inst600000F1: symbolic_constant60000097 +// CHECK:STDOUT: inst600000F2: symbolic_constant60000098 +// CHECK:STDOUT: inst600000F3: symbolic_constant6000009A +// CHECK:STDOUT: inst600000F4: symbolic_constant6000009B +// CHECK:STDOUT: inst600000F5: symbolic_constant6000009F +// CHECK:STDOUT: inst600000F6: symbolic_constant600000A6 // CHECK:STDOUT: inst600000F7: symbolic_constant600000A8 // CHECK:STDOUT: inst600000F8: symbolic_constant600000A9 // CHECK:STDOUT: inst600000F9: symbolic_constant600000AA @@ -988,49 +998,49 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000FB: symbolic_constant600000AC // CHECK:STDOUT: inst600000FC: symbolic_constant600000AD // CHECK:STDOUT: inst600000FD: symbolic_constant600000AE -// CHECK:STDOUT: inst600000FE: concrete_constant(inst600000FE) -// CHECK:STDOUT: inst600000FF: concrete_constant(inst600000FF) -// CHECK:STDOUT: inst60000100: symbolic_constant60000076 -// CHECK:STDOUT: inst60000101: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst60000102: symbolic_constant60000088 -// CHECK:STDOUT: inst60000103: symbolic_constant60000087 -// CHECK:STDOUT: inst60000104: symbolic_constant600000B5 -// CHECK:STDOUT: inst60000105: symbolic_constant600000B6 -// CHECK:STDOUT: inst60000106: symbolic_constant600000B7 -// CHECK:STDOUT: inst60000107: symbolic_constant600000B8 +// CHECK:STDOUT: inst600000FE: symbolic_constant600000AF +// CHECK:STDOUT: inst600000FF: symbolic_constant600000B0 +// CHECK:STDOUT: inst60000100: symbolic_constant600000B1 +// CHECK:STDOUT: inst60000101: symbolic_constant600000B2 +// CHECK:STDOUT: inst60000102: concrete_constant(inst60000102) +// CHECK:STDOUT: inst60000103: concrete_constant(inst60000103) +// CHECK:STDOUT: inst60000104: symbolic_constant60000079 +// CHECK:STDOUT: inst60000105: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst60000106: symbolic_constant6000008B +// CHECK:STDOUT: inst60000107: symbolic_constant6000008A // CHECK:STDOUT: inst60000108: symbolic_constant600000B9 // CHECK:STDOUT: inst60000109: symbolic_constant600000BA // CHECK:STDOUT: inst6000010A: symbolic_constant600000BB -// CHECK:STDOUT: inst6000010B: symbolic_constant600000BD -// CHECK:STDOUT: inst6000010C: symbolic_constant600000BE -// CHECK:STDOUT: inst6000010D: constant -// CHECK:STDOUT: inst6000010E: concrete_constant(inst6000010E) -// CHECK:STDOUT: inst6000010F: symbolic_constant600000BF -// CHECK:STDOUT: inst60000110: symbolic_constant600000C0 -// CHECK:STDOUT: inst60000111: symbolic_constant600000C1 -// CHECK:STDOUT: inst60000112: constant -// CHECK:STDOUT: inst60000113: concrete_constant(inst60000113) -// CHECK:STDOUT: inst60000114: symbolic_constant600000C3 -// CHECK:STDOUT: inst60000115: symbolic_constant600000C7 -// CHECK:STDOUT: inst60000116: symbolic_constant600000C5 -// CHECK:STDOUT: inst60000117: symbolic_constant600000C6 -// CHECK:STDOUT: inst60000118: concrete_constant(inst60000118) -// CHECK:STDOUT: inst60000119: symbolic_constant600000C9 -// CHECK:STDOUT: inst6000011A: symbolic_constant600000CA -// CHECK:STDOUT: inst6000011B: concrete_constant(inst6000011B) +// CHECK:STDOUT: inst6000010B: symbolic_constant600000BC +// CHECK:STDOUT: inst6000010C: symbolic_constant600000BD +// CHECK:STDOUT: inst6000010D: symbolic_constant600000BE +// CHECK:STDOUT: inst6000010E: symbolic_constant600000BF +// CHECK:STDOUT: inst6000010F: symbolic_constant600000C1 +// CHECK:STDOUT: inst60000110: symbolic_constant600000C2 +// CHECK:STDOUT: inst60000111: constant +// CHECK:STDOUT: inst60000112: concrete_constant(inst60000112) +// CHECK:STDOUT: inst60000113: symbolic_constant600000C3 +// CHECK:STDOUT: inst60000114: symbolic_constant600000C4 +// CHECK:STDOUT: inst60000115: symbolic_constant600000C5 +// CHECK:STDOUT: inst60000116: constant +// CHECK:STDOUT: inst60000117: concrete_constant(inst60000117) +// CHECK:STDOUT: inst60000118: symbolic_constant600000C7 +// CHECK:STDOUT: inst60000119: symbolic_constant600000CB +// CHECK:STDOUT: inst6000011A: symbolic_constant600000C9 +// CHECK:STDOUT: inst6000011B: symbolic_constant600000CA // CHECK:STDOUT: inst6000011C: concrete_constant(inst6000011C) -// CHECK:STDOUT: inst6000011D: concrete_constant(inst6000011D) -// CHECK:STDOUT: inst6000011E: concrete_constant(inst6000011E) -// CHECK:STDOUT: inst6000011F: symbolic_constant600000CC -// CHECK:STDOUT: inst60000120: symbolic_constant600000D8 -// CHECK:STDOUT: inst60000121: symbolic_constant600000D7 -// CHECK:STDOUT: inst60000122: symbolic_constant600000D6 -// CHECK:STDOUT: inst60000123: symbolic_constant600000D5 -// CHECK:STDOUT: inst60000124: symbolic_constant600000D9 -// CHECK:STDOUT: inst60000125: symbolic_constant600000DA +// CHECK:STDOUT: inst6000011D: symbolic_constant600000CD +// CHECK:STDOUT: inst6000011E: symbolic_constant600000CE +// CHECK:STDOUT: inst6000011F: concrete_constant(inst6000011F) +// CHECK:STDOUT: inst60000120: concrete_constant(inst60000120) +// CHECK:STDOUT: inst60000121: concrete_constant(inst60000121) +// CHECK:STDOUT: inst60000122: concrete_constant(inst60000122) +// CHECK:STDOUT: inst60000123: symbolic_constant600000D0 +// CHECK:STDOUT: inst60000124: symbolic_constant600000DD +// CHECK:STDOUT: inst60000125: symbolic_constant600000DC // CHECK:STDOUT: inst60000126: symbolic_constant600000DB -// CHECK:STDOUT: inst60000127: symbolic_constant600000DC -// CHECK:STDOUT: inst60000128: symbolic_constant600000DD +// CHECK:STDOUT: inst60000127: symbolic_constant600000DA +// CHECK:STDOUT: inst60000128: symbolic_constant600000D9 // CHECK:STDOUT: inst60000129: symbolic_constant600000DE // CHECK:STDOUT: inst6000012A: symbolic_constant600000DF // CHECK:STDOUT: inst6000012B: symbolic_constant600000E0 @@ -1039,15 +1049,15 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst6000012E: symbolic_constant600000E3 // CHECK:STDOUT: inst6000012F: symbolic_constant600000E4 // CHECK:STDOUT: inst60000130: symbolic_constant600000E5 -// CHECK:STDOUT: inst60000131: symbolic_constant600000E7 -// CHECK:STDOUT: inst60000132: symbolic_constant600000E8 -// CHECK:STDOUT: inst60000133: symbolic_constant600000EC -// CHECK:STDOUT: inst60000134: symbolic_constant600000F8 -// CHECK:STDOUT: inst60000135: symbolic_constant600000FA -// CHECK:STDOUT: inst60000136: symbolic_constant600000FB -// CHECK:STDOUT: inst60000137: symbolic_constant600000FC -// CHECK:STDOUT: inst60000138: symbolic_constant600000FD -// CHECK:STDOUT: inst60000139: symbolic_constant600000FE +// CHECK:STDOUT: inst60000131: symbolic_constant600000E6 +// CHECK:STDOUT: inst60000132: symbolic_constant600000E7 +// CHECK:STDOUT: inst60000133: symbolic_constant600000E8 +// CHECK:STDOUT: inst60000134: symbolic_constant600000E9 +// CHECK:STDOUT: inst60000135: symbolic_constant600000EA +// CHECK:STDOUT: inst60000136: symbolic_constant600000EC +// CHECK:STDOUT: inst60000137: symbolic_constant600000ED +// CHECK:STDOUT: inst60000138: symbolic_constant600000F1 +// CHECK:STDOUT: inst60000139: symbolic_constant600000FD // CHECK:STDOUT: inst6000013A: symbolic_constant600000FF // CHECK:STDOUT: inst6000013B: symbolic_constant60000100 // CHECK:STDOUT: inst6000013C: symbolic_constant60000101 @@ -1059,43 +1069,48 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000142: symbolic_constant60000107 // CHECK:STDOUT: inst60000143: symbolic_constant60000108 // CHECK:STDOUT: inst60000144: symbolic_constant60000109 -// CHECK:STDOUT: inst60000145: concrete_constant(inst60000145) -// CHECK:STDOUT: inst60000146: concrete_constant(inst60000146) -// CHECK:STDOUT: inst60000147: concrete_constant(inst60000147) -// CHECK:STDOUT: inst60000148: symbolic_constant600000C2 -// CHECK:STDOUT: inst60000149: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst6000014A: symbolic_constant600000D7 -// CHECK:STDOUT: inst6000014B: symbolic_constant600000D6 -// CHECK:STDOUT: inst6000014C: symbolic_constant600000D5 -// CHECK:STDOUT: inst6000014D: symbolic_constant60000112 -// CHECK:STDOUT: inst6000014E: symbolic_constant60000113 -// CHECK:STDOUT: inst6000014F: symbolic_constant60000114 -// CHECK:STDOUT: inst60000150: symbolic_constant60000115 -// CHECK:STDOUT: inst60000151: symbolic_constant60000116 +// CHECK:STDOUT: inst60000145: symbolic_constant6000010A +// CHECK:STDOUT: inst60000146: symbolic_constant6000010B +// CHECK:STDOUT: inst60000147: symbolic_constant6000010C +// CHECK:STDOUT: inst60000148: symbolic_constant6000010D +// CHECK:STDOUT: inst60000149: symbolic_constant6000010E +// CHECK:STDOUT: inst6000014A: concrete_constant(inst6000014A) +// CHECK:STDOUT: inst6000014B: concrete_constant(inst6000014B) +// CHECK:STDOUT: inst6000014C: concrete_constant(inst6000014C) +// CHECK:STDOUT: inst6000014D: symbolic_constant600000C6 +// CHECK:STDOUT: inst6000014E: concrete_constant(inst6000004F) +// CHECK:STDOUT: inst6000014F: symbolic_constant600000DB +// CHECK:STDOUT: inst60000150: symbolic_constant600000DA +// CHECK:STDOUT: inst60000151: symbolic_constant600000D9 // CHECK:STDOUT: inst60000152: symbolic_constant60000117 // CHECK:STDOUT: inst60000153: symbolic_constant60000118 // CHECK:STDOUT: inst60000154: symbolic_constant60000119 // CHECK:STDOUT: inst60000155: symbolic_constant6000011A -// CHECK:STDOUT: inst60000156: symbolic_constant6000011C -// CHECK:STDOUT: inst60000157: symbolic_constant6000011D -// CHECK:STDOUT: inst60000158: symbolic_constant60000120 -// CHECK:STDOUT: inst60000159: symbolic_constant6000011F -// CHECK:STDOUT: inst6000015A: symbolic_constant60000120 +// CHECK:STDOUT: inst60000156: symbolic_constant6000011B +// CHECK:STDOUT: inst60000157: symbolic_constant6000011C +// CHECK:STDOUT: inst60000158: symbolic_constant6000011D +// CHECK:STDOUT: inst60000159: symbolic_constant6000011E +// CHECK:STDOUT: inst6000015A: symbolic_constant6000011F // CHECK:STDOUT: inst6000015B: symbolic_constant60000121 // CHECK:STDOUT: inst6000015C: symbolic_constant60000122 -// CHECK:STDOUT: inst6000015D: symbolic_constant60000123 +// CHECK:STDOUT: inst6000015D: symbolic_constant60000125 // CHECK:STDOUT: inst6000015E: symbolic_constant60000124 -// CHECK:STDOUT: inst6000015F: symbolic_constant60000128 -// CHECK:STDOUT: inst60000160: symbolic_constant60000125 -// CHECK:STDOUT: inst60000161: symbolic_constant60000126 -// CHECK:STDOUT: inst60000162: symbolic_constant60000127 -// CHECK:STDOUT: inst60000163: symbolic_constant60000128 +// CHECK:STDOUT: inst6000015F: symbolic_constant60000125 +// CHECK:STDOUT: inst60000160: symbolic_constant60000126 +// CHECK:STDOUT: inst60000161: symbolic_constant60000127 +// CHECK:STDOUT: inst60000162: symbolic_constant60000128 +// CHECK:STDOUT: inst60000163: symbolic_constant60000129 +// CHECK:STDOUT: inst60000164: symbolic_constant6000012D // CHECK:STDOUT: inst60000165: symbolic_constant6000012A -// CHECK:STDOUT: inst60000166: symbolic_constant60000129 -// CHECK:STDOUT: inst60000167: symbolic_constant6000012A -// CHECK:STDOUT: inst60000169: symbolic_constant60000013 -// CHECK:STDOUT: inst6000016D: concrete_constant(inst60000027) -// CHECK:STDOUT: inst6000016E: concrete_constant(inst60000027) +// CHECK:STDOUT: inst60000166: symbolic_constant6000012B +// CHECK:STDOUT: inst60000167: symbolic_constant6000012C +// CHECK:STDOUT: inst60000168: symbolic_constant6000012D +// CHECK:STDOUT: inst6000016A: symbolic_constant6000012F +// CHECK:STDOUT: inst6000016B: symbolic_constant6000012E +// CHECK:STDOUT: inst6000016C: symbolic_constant6000012F +// CHECK:STDOUT: inst6000016E: symbolic_constant60000013 +// CHECK:STDOUT: inst60000172: concrete_constant(inst60000027) +// CHECK:STDOUT: inst60000173: concrete_constant(inst60000027) // CHECK:STDOUT: symbolic_constants: // CHECK:STDOUT: symbolic_constant0: {inst: inst60000014, generic: generic, index: generic_inst, kind: self} // CHECK:STDOUT: symbolic_constant1: {inst: inst60000016, generic: generic, index: generic_inst, kind: checked} @@ -1125,277 +1140,282 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: symbolic_constant60000019: {inst: inst60000060, generic: generic60000001, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant6000001A: {inst: inst6000005A, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant6000001B: {inst: inst60000050, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001C: {inst: inst6000005A, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001D: {inst: inst60000050, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst6000005A, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst6000005B, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000060, generic: generic60000001, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000021: {inst: inst6000006A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001C: {inst: inst60000060, generic: generic60000001, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001D: {inst: inst6000005A, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000050, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst6000005A, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000020: {inst: inst6000005B, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000060, generic: generic60000001, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant60000022: {inst: inst6000006B, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant60000023: {inst: inst6000006C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000024: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000025: {inst: inst6000006F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000026: {inst: inst6000006F, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000071, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000024: {inst: inst6000006D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000025: {inst: inst6000006D, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000026: {inst: inst60000070, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000070, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant60000028: {inst: inst60000072, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000073, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000078, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000030: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000031: {inst: inst6000006A, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000032: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000033: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000034: {inst: inst6000006A, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000035: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000036: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000038: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000080, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst60000081, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000073, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000074, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000079, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000030: {inst: inst6000006D, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000031: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000032: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000033: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000035: {inst: inst6000006D, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000036: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000037: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000038: {inst: inst6000006D, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_decl4, kind: checked} // CHECK:STDOUT: symbolic_constant6000003B: {inst: inst60000082, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant6000003C: {inst: inst60000083, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000084, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000085, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000086, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000086, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000087, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000087, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000087, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000086, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000050: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000051: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000052: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000053: {inst: inst6000006F, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000054: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000055: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000056: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000057: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000058: {inst: inst600000AD, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000059: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst60000016, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst60000016, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst60000084, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000085, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000085, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000086, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000087, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000088, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000088, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000089, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000089, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000089, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000088, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst60000085, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst6000006D, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000050: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000051: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000052: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000053: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000054: {inst: inst6000006D, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000055: {inst: inst60000070, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000056: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000057: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000058: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000059: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst600000AF, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst600000AF, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant6000005D: {inst: inst60000016, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000060: {inst: inst60000044, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000061: {inst: inst600000B6, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000062: {inst: inst600000B7, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000063: {inst: inst600000B7, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000B6, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000065: {inst: inst6000001F, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000066: {inst: inst600000BC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000BC, generic: generic60000005, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000068: {inst: inst6000001C, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000069: {inst: inst60000016, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst60000016, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst60000016, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000060: {inst: inst6000001C, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000061: {inst: inst600000AF, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000062: {inst: inst60000044, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000063: {inst: inst600000B8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000B9, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000065: {inst: inst600000B9, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000066: {inst: inst600000B8, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000067: {inst: inst6000001F, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000BE, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000069: {inst: inst600000BE, generic: generic60000005, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant6000006A: {inst: inst6000001C, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant6000006B: {inst: inst60000016, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst6000001C, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst6000001F, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst600000BC, generic: generic60000005, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000B7, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000B6, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000B7, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000072: {inst: inst60000044, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000073: {inst: inst600000D0, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000D1, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000075: {inst: inst600000D2, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000076: {inst: inst600000D2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000077: {inst: inst600000D5, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000078: {inst: inst600000D5, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000D7, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000BE, generic: generic60000005, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst6000001C, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst60000016, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst6000001C, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000070: {inst: inst6000001F, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000BE, generic: generic60000005, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000B9, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000073: {inst: inst600000B8, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000B9, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000075: {inst: inst60000044, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000076: {inst: inst600000D3, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000077: {inst: inst600000D4, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000078: {inst: inst600000D5, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000D5, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} // CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000D8, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000DA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000DB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000E0, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000E0, generic: generic60000007, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000D2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000083: {inst: inst600000D1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000084: {inst: inst600000D0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000085: {inst: inst6000006B, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000086: {inst: inst6000006A, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000D0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000088: {inst: inst6000006A, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000089: {inst: inst600000D2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst6000006A, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst6000006B, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000D0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst600000D1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000D2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000090: {inst: inst600000E0, generic: generic60000007, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000091: {inst: inst600000EB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000092: {inst: inst600000EC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000093: {inst: inst600000ED, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000094: {inst: inst600000EE, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000095: {inst: inst600000EE, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000EF, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000F0, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000ED, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000F1, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000F1, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000086, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst600000F2, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst600000F2, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst600000F2, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst60000086, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000F1, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000ED, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000EE, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst600000D2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst600000D1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst6000006B, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst600000DA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst600000D0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst6000006A, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst6000006A, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst600000D0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst600000DA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst6000006B, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst600000D1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000D2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst600000D5, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst6000010F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst60000110, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000111, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst60000111, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst60000114, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst60000114, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst60000116, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000119, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst6000011A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst6000011A, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst6000011F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst6000011F, generic: generic60000009, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst60000111, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst60000110, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst6000010F, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst600000D1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst600000D0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst6000006B, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst6000006A, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst6000010F, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst600000D0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst6000006A, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst60000111, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst6000006A, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst6000006B, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst600000D0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst600000D1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst6000010F, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst60000110, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst60000111, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst6000011A, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst6000011F, generic: generic60000009, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst6000012D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst6000012E, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst6000012F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst60000130, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst60000130, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst60000131, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst60000132, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst6000012F, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst60000133, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst60000133, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst600000EE, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst600000ED, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst600000F1, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst60000086, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000134, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000134, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst60000134, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst60000086, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000100: {inst: inst600000F1, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000101: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000102: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant60000103: {inst: inst600000ED, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant60000104: {inst: inst600000EE, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant60000105: {inst: inst60000133, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant60000106: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant60000107: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant60000108: {inst: inst6000012F, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant60000109: {inst: inst60000130, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst60000111, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010B: {inst: inst60000110, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst600000D1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst6000006B, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst60000119, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst6000010F, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000110: {inst: inst600000D0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000111: {inst: inst6000006A, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000112: {inst: inst6000006A, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000113: {inst: inst600000D0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000114: {inst: inst6000010F, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000115: {inst: inst60000119, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000116: {inst: inst6000006B, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000117: {inst: inst600000D1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000118: {inst: inst60000110, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000119: {inst: inst60000111, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011A: {inst: inst60000114, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011B: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011C: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011D: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011E: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000011F: {inst: inst60000159, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000120: {inst: inst60000159, generic: generic60000000, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000121: {inst: inst6000015B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000122: {inst: inst6000015B, generic: generic60000000, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000123: {inst: inst6000015D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000DA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000DB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000DB, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000DA, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000DD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000DE, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000083: {inst: inst600000E3, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000084: {inst: inst600000E3, generic: generic60000007, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000D5, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000D4, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000D3, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000088: {inst: inst6000006C, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000089: {inst: inst6000006B, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst600000D3, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst6000006B, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000E3, generic: generic60000007, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst600000D5, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst6000006B, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst6000006C, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000090: {inst: inst600000D3, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000091: {inst: inst600000D4, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000092: {inst: inst600000D5, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000093: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000094: {inst: inst600000E3, generic: generic60000007, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000095: {inst: inst600000EF, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000F0, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000F1, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000F2, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000F2, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000F3, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000F4, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000F1, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst600000F0, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000EF, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000F5, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst600000F5, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000085, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst60000088, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000F6, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000F6, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000F6, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst60000088, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst60000085, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000F5, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst600000EF, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst600000F0, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst600000F1, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst600000F2, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst600000D5, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst600000D4, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst6000006C, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst600000DD, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst600000D3, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst6000006B, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst6000006B, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000D3, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst600000DD, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst6000006C, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst600000D4, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst600000D5, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst600000DB, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst600000DA, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst600000DB, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst60000113, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst60000114, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst60000115, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000118, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000118, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst6000011A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst6000011B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst6000011B, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst6000011A, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst6000011D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst6000011E, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst6000011E, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst60000123, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst60000123, generic: generic60000009, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst60000115, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst60000114, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst60000113, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000D4, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst600000D3, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst6000006C, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst6000006B, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst60000113, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst600000D3, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst6000006B, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst60000123, generic: generic60000009, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000115, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst6000006B, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000006C, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst600000D3, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst600000D4, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000113, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst60000114, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000115, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst6000011E, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst60000123, generic: generic60000009, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst60000132, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst60000133, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst60000134, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst60000135, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst60000135, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst60000136, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst60000137, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst60000134, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst60000133, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst60000132, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst60000138, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst60000138, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst600000F2, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst600000F1, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst600000F0, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst600000EF, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst600000F5, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000085, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst60000088, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000139, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst60000139, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst60000139, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000100: {inst: inst60000088, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000101: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000102: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000103: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000104: {inst: inst60000085, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000105: {inst: inst600000F5, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000106: {inst: inst600000EF, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000107: {inst: inst600000F0, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000108: {inst: inst600000F1, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant60000109: {inst: inst600000F2, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst60000138, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010B: {inst: inst60000132, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst60000133, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst60000134, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst60000135, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000110: {inst: inst60000114, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000111: {inst: inst600000D4, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000112: {inst: inst6000006C, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000113: {inst: inst6000011D, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000114: {inst: inst60000113, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000115: {inst: inst600000D3, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000116: {inst: inst6000006B, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000117: {inst: inst6000006B, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000118: {inst: inst600000D3, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000119: {inst: inst60000113, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011A: {inst: inst6000011D, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011B: {inst: inst6000006C, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011C: {inst: inst600000D4, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011D: {inst: inst60000114, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011E: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant6000011F: {inst: inst60000118, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000120: {inst: inst6000011B, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000121: {inst: inst6000011A, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000122: {inst: inst6000011B, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000123: {inst: inst600000AF, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant60000124: {inst: inst6000015E, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000125: {inst: inst60000160, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000126: {inst: inst6000015D, generic: generic60000000, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000127: {inst: inst6000015E, generic: generic60000000, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000128: {inst: inst60000160, generic: generic60000000, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000129: {inst: inst60000166, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000012A: {inst: inst60000166, generic: generic60000000, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000125: {inst: inst6000015E, generic: generic60000000, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000126: {inst: inst60000160, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000127: {inst: inst60000160, generic: generic60000000, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000128: {inst: inst60000162, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000129: {inst: inst60000163, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012A: {inst: inst60000165, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012B: {inst: inst60000162, generic: generic60000000, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012C: {inst: inst60000163, generic: generic60000000, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012D: {inst: inst60000165, generic: generic60000000, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012E: {inst: inst6000016B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000012F: {inst: inst6000016B, generic: generic60000000, index: generic_inst_in_def7, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: @@ -1415,23 +1435,23 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 11: inst6000005F // CHECK:STDOUT: 12: inst60000061 // CHECK:STDOUT: 13: inst60000062 -// CHECK:STDOUT: 14: inst60000068 +// CHECK:STDOUT: 14: inst60000063 // CHECK:STDOUT: 15: inst60000069 -// CHECK:STDOUT: 16: inst6000006D +// CHECK:STDOUT: 16: inst6000006A // CHECK:STDOUT: 17: inst6000006E -// CHECK:STDOUT: 18: inst60000070 -// CHECK:STDOUT: 19: inst60000074 +// CHECK:STDOUT: 18: inst6000006F +// CHECK:STDOUT: 19: inst60000071 // CHECK:STDOUT: 20: inst60000075 // CHECK:STDOUT: 21: inst60000076 // CHECK:STDOUT: 22: inst60000077 -// CHECK:STDOUT: 23: inst60000079 +// CHECK:STDOUT: 23: inst60000078 // CHECK:STDOUT: 24: inst6000007A -// CHECK:STDOUT: 25: inst6000008F -// CHECK:STDOUT: 26: inst60000090 +// CHECK:STDOUT: 25: inst6000007B +// CHECK:STDOUT: 26: inst6000007C // CHECK:STDOUT: 27: inst60000091 // CHECK:STDOUT: 28: inst60000092 -// CHECK:STDOUT: 29: inst60000099 -// CHECK:STDOUT: 30: inst6000009A +// CHECK:STDOUT: 29: inst60000093 +// CHECK:STDOUT: 30: inst60000094 // CHECK:STDOUT: 31: inst6000009B // CHECK:STDOUT: 32: inst6000009C // CHECK:STDOUT: 33: inst6000009D @@ -1450,20 +1470,20 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 46: inst600000AA // CHECK:STDOUT: 47: inst600000AB // CHECK:STDOUT: 48: inst600000AC -// CHECK:STDOUT: 49: inst600000AE -// CHECK:STDOUT: 50: inst600000AF +// CHECK:STDOUT: 49: inst600000AD +// CHECK:STDOUT: 50: inst600000AE // CHECK:STDOUT: 51: inst600000B0 // CHECK:STDOUT: 52: inst600000B1 -// CHECK:STDOUT: 53: inst600000B5 -// CHECK:STDOUT: 54: inst600000B8 -// CHECK:STDOUT: 55: inst600000B9 +// CHECK:STDOUT: 53: inst600000B2 +// CHECK:STDOUT: 54: inst600000B3 +// CHECK:STDOUT: 55: inst600000B7 // CHECK:STDOUT: 56: inst600000BA // CHECK:STDOUT: 57: inst600000BB -// CHECK:STDOUT: 58: inst600000BD -// CHECK:STDOUT: 59: inst600000BE -// CHECK:STDOUT: 60: inst600000C6 -// CHECK:STDOUT: 61: inst600000C7 -// CHECK:STDOUT: 62: inst600000C8 +// CHECK:STDOUT: 58: inst600000BC +// CHECK:STDOUT: 59: inst600000BD +// CHECK:STDOUT: 60: inst600000BF +// CHECK:STDOUT: 61: inst600000C0 +// CHECK:STDOUT: 62: inst600000C1 // CHECK:STDOUT: 63: inst600000C9 // CHECK:STDOUT: 64: inst600000CA // CHECK:STDOUT: 65: inst600000CB @@ -1471,43 +1491,48 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 67: inst600000CD // CHECK:STDOUT: 68: inst600000CE // CHECK:STDOUT: 69: inst600000CF -// CHECK:STDOUT: 70: inst600000D3 -// CHECK:STDOUT: 71: inst600000D4 -// CHECK:STDOUT: 72: inst600000D6 -// CHECK:STDOUT: 73: inst600000DC -// CHECK:STDOUT: 74: inst600000DD -// CHECK:STDOUT: 75: inst600000DE +// CHECK:STDOUT: 70: inst600000D0 +// CHECK:STDOUT: 71: inst600000D1 +// CHECK:STDOUT: 72: inst600000D2 +// CHECK:STDOUT: 73: inst600000D6 +// CHECK:STDOUT: 74: inst600000D7 +// CHECK:STDOUT: 75: inst600000D9 // CHECK:STDOUT: 76: inst600000DF -// CHECK:STDOUT: 77: inst600000E1 -// CHECK:STDOUT: 78: inst600000E2 -// CHECK:STDOUT: 79: inst600000E3 -// CHECK:STDOUT: 80: inst600000FE -// CHECK:STDOUT: 81: inst600000FF -// CHECK:STDOUT: 82: inst60000100 -// CHECK:STDOUT: 83: inst60000101 +// CHECK:STDOUT: 77: inst600000E0 +// CHECK:STDOUT: 78: inst600000E1 +// CHECK:STDOUT: 79: inst600000E2 +// CHECK:STDOUT: 80: inst600000E4 +// CHECK:STDOUT: 81: inst600000E5 +// CHECK:STDOUT: 82: inst600000E6 +// CHECK:STDOUT: 83: inst600000E7 // CHECK:STDOUT: 84: inst60000102 // CHECK:STDOUT: 85: inst60000103 -// CHECK:STDOUT: 86: inst6000010D -// CHECK:STDOUT: 87: inst6000010E -// CHECK:STDOUT: 88: inst60000112 -// CHECK:STDOUT: 89: inst60000113 -// CHECK:STDOUT: 90: inst60000115 -// CHECK:STDOUT: 91: inst6000011B -// CHECK:STDOUT: 92: inst6000011C -// CHECK:STDOUT: 93: inst6000011D -// CHECK:STDOUT: 94: inst6000011E -// CHECK:STDOUT: 95: inst60000120 -// CHECK:STDOUT: 96: inst60000121 -// CHECK:STDOUT: 97: inst60000122 -// CHECK:STDOUT: 98: inst60000123 -// CHECK:STDOUT: 99: inst60000145 -// CHECK:STDOUT: 100: inst60000146 -// CHECK:STDOUT: 101: inst60000147 -// CHECK:STDOUT: 102: inst60000148 -// CHECK:STDOUT: 103: inst60000149 +// CHECK:STDOUT: 86: inst60000104 +// CHECK:STDOUT: 87: inst60000105 +// CHECK:STDOUT: 88: inst60000106 +// CHECK:STDOUT: 89: inst60000107 +// CHECK:STDOUT: 90: inst60000111 +// CHECK:STDOUT: 91: inst60000112 +// CHECK:STDOUT: 92: inst60000116 +// CHECK:STDOUT: 93: inst60000117 +// CHECK:STDOUT: 94: inst60000119 +// CHECK:STDOUT: 95: inst6000011F +// CHECK:STDOUT: 96: inst60000120 +// CHECK:STDOUT: 97: inst60000121 +// CHECK:STDOUT: 98: inst60000122 +// CHECK:STDOUT: 99: inst60000124 +// CHECK:STDOUT: 100: inst60000125 +// CHECK:STDOUT: 101: inst60000126 +// CHECK:STDOUT: 102: inst60000127 +// CHECK:STDOUT: 103: inst60000128 // CHECK:STDOUT: 104: inst6000014A // CHECK:STDOUT: 105: inst6000014B // CHECK:STDOUT: 106: inst6000014C +// CHECK:STDOUT: 107: inst6000014D +// CHECK:STDOUT: 108: inst6000014E +// CHECK:STDOUT: 109: inst6000014F +// CHECK:STDOUT: 110: inst60000150 +// CHECK:STDOUT: 111: inst60000151 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: // CHECK:STDOUT: 0: inst60000013 @@ -1589,19 +1614,19 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst60000047 // CHECK:STDOUT: 1: inst60000048 // CHECK:STDOUT: 2: inst60000049 -// CHECK:STDOUT: 3: inst6000015F -// CHECK:STDOUT: 4: inst60000164 -// CHECK:STDOUT: 5: inst60000165 -// CHECK:STDOUT: 6: inst60000168 -// CHECK:STDOUT: 7: inst6000016A +// CHECK:STDOUT: 3: inst60000164 +// CHECK:STDOUT: 4: inst60000169 +// CHECK:STDOUT: 5: inst6000016A +// CHECK:STDOUT: 6: inst6000016D +// CHECK:STDOUT: 7: inst6000016F // CHECK:STDOUT: 8: inst6000004B -// CHECK:STDOUT: 9: inst6000016B -// CHECK:STDOUT: 10: inst6000016C -// CHECK:STDOUT: 11: inst6000016D -// CHECK:STDOUT: 12: inst6000016E -// CHECK:STDOUT: 13: inst6000016F -// CHECK:STDOUT: 14: inst60000170 -// CHECK:STDOUT: 15: inst60000171 +// CHECK:STDOUT: 9: inst60000170 +// CHECK:STDOUT: 10: inst60000171 +// CHECK:STDOUT: 11: inst60000172 +// CHECK:STDOUT: 12: inst60000173 +// CHECK:STDOUT: 13: inst60000174 +// CHECK:STDOUT: 14: inst60000175 +// CHECK:STDOUT: 15: inst60000176 // CHECK:STDOUT: inst_block60000018: // CHECK:STDOUT: 0: inst60000047 // CHECK:STDOUT: 1: inst60000048 @@ -1612,12 +1637,12 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst_block6000001B: // CHECK:STDOUT: 0: inst6000005D // CHECK:STDOUT: inst_block6000001C: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: inst_block6000001D: // CHECK:STDOUT: 0: inst60000063 -// CHECK:STDOUT: 1: inst60000064 -// CHECK:STDOUT: 2: inst60000065 -// CHECK:STDOUT: 3: inst60000066 +// CHECK:STDOUT: inst_block6000001D: +// CHECK:STDOUT: 0: inst60000064 +// CHECK:STDOUT: 1: inst60000065 +// CHECK:STDOUT: 2: inst60000066 +// CHECK:STDOUT: 3: inst60000067 // CHECK:STDOUT: inst_block6000001E: // CHECK:STDOUT: 0: inst60000050 // CHECK:STDOUT: inst_block6000001F: @@ -1626,362 +1651,362 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 2: inst6000005B // CHECK:STDOUT: 3: inst60000060 // CHECK:STDOUT: inst_block60000020: -// CHECK:STDOUT: 0: inst6000006D +// CHECK:STDOUT: 0: inst6000006E // CHECK:STDOUT: inst_block60000021: -// CHECK:STDOUT: 0: inst6000006A +// CHECK:STDOUT: 0: inst6000006B // CHECK:STDOUT: inst_block60000022: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst6000006B -// CHECK:STDOUT: 2: inst6000006C -// CHECK:STDOUT: 3: inst6000006F +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst6000006C +// CHECK:STDOUT: 2: inst6000006D +// CHECK:STDOUT: 3: inst60000070 // CHECK:STDOUT: inst_block60000023: -// CHECK:STDOUT: 0: inst60000071 -// CHECK:STDOUT: 1: inst60000072 +// CHECK:STDOUT: 0: inst60000072 +// CHECK:STDOUT: 1: inst60000073 // CHECK:STDOUT: inst_block60000024: -// CHECK:STDOUT: 0: inst60000077 +// CHECK:STDOUT: 0: inst60000078 // CHECK:STDOUT: inst_block60000025: -// CHECK:STDOUT: 0: inst60000075 +// CHECK:STDOUT: 0: inst60000076 // CHECK:STDOUT: inst_block60000026: -// CHECK:STDOUT: 0: inst6000007A +// CHECK:STDOUT: 0: inst6000007C // CHECK:STDOUT: inst_block60000027: -// CHECK:STDOUT: 0: inst6000007B -// CHECK:STDOUT: 1: inst6000007C -// CHECK:STDOUT: 2: inst6000007D -// CHECK:STDOUT: 3: inst6000007E -// CHECK:STDOUT: 4: inst6000007F +// CHECK:STDOUT: 0: inst6000007D +// CHECK:STDOUT: 1: inst6000007E +// CHECK:STDOUT: 2: inst6000007F +// CHECK:STDOUT: 3: inst60000080 +// CHECK:STDOUT: 4: inst60000081 // CHECK:STDOUT: inst_block60000028: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst6000006B -// CHECK:STDOUT: 2: inst60000085 -// CHECK:STDOUT: 3: inst60000084 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst6000006C +// CHECK:STDOUT: 2: inst60000087 +// CHECK:STDOUT: 3: inst60000086 // CHECK:STDOUT: inst_block60000029: -// CHECK:STDOUT: 0: inst6000007B +// CHECK:STDOUT: 0: inst6000007D // CHECK:STDOUT: inst_block6000002A: -// CHECK:STDOUT: 0: inst60000088 -// CHECK:STDOUT: 1: inst60000089 -// CHECK:STDOUT: 2: inst6000008A -// CHECK:STDOUT: 3: inst6000008B -// CHECK:STDOUT: 4: inst6000008C -// CHECK:STDOUT: 5: inst6000008D +// CHECK:STDOUT: 0: inst6000008A +// CHECK:STDOUT: 1: inst6000008B +// CHECK:STDOUT: 2: inst6000008C +// CHECK:STDOUT: 3: inst6000008D +// CHECK:STDOUT: 4: inst6000008E +// CHECK:STDOUT: 5: inst6000008F // CHECK:STDOUT: inst_block6000002B: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst6000006B -// CHECK:STDOUT: 2: inst6000006C -// CHECK:STDOUT: 3: inst60000073 -// CHECK:STDOUT: 4: inst60000078 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst6000006C +// CHECK:STDOUT: 2: inst6000006D +// CHECK:STDOUT: 3: inst60000074 +// CHECK:STDOUT: 4: inst60000079 // CHECK:STDOUT: inst_block6000002C: -// CHECK:STDOUT: 0: inst6000008F +// CHECK:STDOUT: 0: inst60000091 // CHECK:STDOUT: inst_block6000002D: -// CHECK:STDOUT: 0: inst60000092 +// CHECK:STDOUT: 0: inst60000094 // CHECK:STDOUT: inst_block6000002E: -// CHECK:STDOUT: 0: inst60000093 +// CHECK:STDOUT: 0: inst60000095 // CHECK:STDOUT: inst_block6000002F: -// CHECK:STDOUT: 0: inst60000093 -// CHECK:STDOUT: 1: inst60000094 -// CHECK:STDOUT: 2: inst60000095 -// CHECK:STDOUT: 3: inst60000096 +// CHECK:STDOUT: 0: inst60000095 +// CHECK:STDOUT: 1: inst60000096 +// CHECK:STDOUT: 2: inst60000097 +// CHECK:STDOUT: 3: inst60000098 // CHECK:STDOUT: inst_block60000030: -// CHECK:STDOUT: 0: inst60000093 +// CHECK:STDOUT: 0: inst60000095 // CHECK:STDOUT: inst_block60000031: -// CHECK:STDOUT: 0: inst60000097 -// CHECK:STDOUT: 1: inst60000098 +// CHECK:STDOUT: 0: inst60000099 +// CHECK:STDOUT: 1: inst6000009A // CHECK:STDOUT: inst_block60000032: -// CHECK:STDOUT: 0: inst600000AB +// CHECK:STDOUT: 0: inst600000AD // CHECK:STDOUT: inst_block60000033: // CHECK:STDOUT: 0: inst60000016 // CHECK:STDOUT: 1: inst6000001C -// CHECK:STDOUT: 2: inst600000AD +// CHECK:STDOUT: 2: inst600000AF // CHECK:STDOUT: inst_block60000034: -// CHECK:STDOUT: 0: inst600000AE +// CHECK:STDOUT: 0: inst600000B0 // CHECK:STDOUT: inst_block60000035: -// CHECK:STDOUT: 0: inst600000B1 +// CHECK:STDOUT: 0: inst600000B3 // CHECK:STDOUT: inst_block60000036: -// CHECK:STDOUT: 0: inst600000B2 +// CHECK:STDOUT: 0: inst600000B4 // CHECK:STDOUT: inst_block60000037: -// CHECK:STDOUT: 0: inst600000B2 -// CHECK:STDOUT: 1: inst600000B3 -// CHECK:STDOUT: 2: inst600000B4 +// CHECK:STDOUT: 0: inst600000B4 +// CHECK:STDOUT: 1: inst600000B5 +// CHECK:STDOUT: 2: inst600000B6 // CHECK:STDOUT: inst_block60000038: -// CHECK:STDOUT: 0: inst600000BB +// CHECK:STDOUT: 0: inst600000BD // CHECK:STDOUT: inst_block60000039: -// CHECK:STDOUT: 0: inst600000B9 +// CHECK:STDOUT: 0: inst600000BB // CHECK:STDOUT: inst_block6000003A: -// CHECK:STDOUT: 0: inst600000BE +// CHECK:STDOUT: 0: inst600000C1 // CHECK:STDOUT: inst_block6000003B: -// CHECK:STDOUT: 0: inst600000BF -// CHECK:STDOUT: 1: inst600000C0 -// CHECK:STDOUT: 2: inst600000C1 -// CHECK:STDOUT: 3: inst600000C2 +// CHECK:STDOUT: 0: inst600000C2 +// CHECK:STDOUT: 1: inst600000C3 +// CHECK:STDOUT: 2: inst600000C4 +// CHECK:STDOUT: 3: inst600000C5 // CHECK:STDOUT: inst_block6000003C: // CHECK:STDOUT: 0: inst60000016 // CHECK:STDOUT: 1: inst6000001C // CHECK:STDOUT: 2: inst6000001F -// CHECK:STDOUT: 3: inst600000BC +// CHECK:STDOUT: 3: inst600000BE // CHECK:STDOUT: inst_block6000003D: -// CHECK:STDOUT: 0: inst600000B2 +// CHECK:STDOUT: 0: inst600000B4 // CHECK:STDOUT: inst_block6000003E: -// CHECK:STDOUT: 0: inst600000C3 -// CHECK:STDOUT: 1: inst600000C4 -// CHECK:STDOUT: 2: inst600000C5 +// CHECK:STDOUT: 0: inst600000C6 +// CHECK:STDOUT: 1: inst600000C7 +// CHECK:STDOUT: 2: inst600000C8 // CHECK:STDOUT: inst_block6000003F: -// CHECK:STDOUT: 0: inst6000006B -// CHECK:STDOUT: 1: inst600000D1 +// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: 1: inst600000D4 // CHECK:STDOUT: inst_block60000040: -// CHECK:STDOUT: 0: inst600000D3 +// CHECK:STDOUT: 0: inst600000D6 // CHECK:STDOUT: inst_block60000041: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst600000D0 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst600000D3 // CHECK:STDOUT: inst_block60000042: // CHECK:STDOUT: 0: inst6000004F // CHECK:STDOUT: 1: inst6000004F // CHECK:STDOUT: inst_block60000043: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: 2: inst600000DA -// CHECK:STDOUT: 3: inst6000006B -// CHECK:STDOUT: 4: inst600000D1 -// CHECK:STDOUT: 5: inst600000D2 -// CHECK:STDOUT: 6: inst600000D5 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst600000D3 +// CHECK:STDOUT: 2: inst600000DD +// CHECK:STDOUT: 3: inst6000006C +// CHECK:STDOUT: 4: inst600000D4 +// CHECK:STDOUT: 5: inst600000D5 +// CHECK:STDOUT: 6: inst600000D8 // CHECK:STDOUT: inst_block60000044: -// CHECK:STDOUT: 0: inst600000D7 -// CHECK:STDOUT: 1: inst600000D8 +// CHECK:STDOUT: 0: inst600000DA +// CHECK:STDOUT: 1: inst600000DB // CHECK:STDOUT: inst_block60000045: -// CHECK:STDOUT: 0: inst600000DF -// CHECK:STDOUT: inst_block60000046: -// CHECK:STDOUT: 0: inst600000DD -// CHECK:STDOUT: inst_block60000047: // CHECK:STDOUT: 0: inst600000E2 -// CHECK:STDOUT: 1: inst600000E3 -// CHECK:STDOUT: inst_block60000048: -// CHECK:STDOUT: 0: inst600000E5 -// CHECK:STDOUT: 1: inst600000E7 -// CHECK:STDOUT: inst_block60000049: -// CHECK:STDOUT: 0: inst600000E4 -// CHECK:STDOUT: 1: inst600000E5 -// CHECK:STDOUT: 2: inst600000E6 -// CHECK:STDOUT: 3: inst600000E7 -// CHECK:STDOUT: 4: inst600000E8 -// CHECK:STDOUT: 5: inst600000E9 -// CHECK:STDOUT: 6: inst600000EA -// CHECK:STDOUT: inst_block6000004A: -// CHECK:STDOUT: 0: inst600000D0 -// CHECK:STDOUT: inst_block6000004B: -// CHECK:STDOUT: 0: inst600000D0 -// CHECK:STDOUT: 1: inst600000D1 -// CHECK:STDOUT: 2: inst600000F0 -// CHECK:STDOUT: 3: inst600000EF -// CHECK:STDOUT: inst_block6000004C: -// CHECK:STDOUT: 0: inst600000E4 -// CHECK:STDOUT: inst_block6000004D: +// CHECK:STDOUT: inst_block60000046: +// CHECK:STDOUT: 0: inst600000E0 +// CHECK:STDOUT: inst_block60000047: // CHECK:STDOUT: 0: inst600000E6 +// CHECK:STDOUT: 1: inst600000E7 +// CHECK:STDOUT: inst_block60000048: +// CHECK:STDOUT: 0: inst600000E9 +// CHECK:STDOUT: 1: inst600000EB +// CHECK:STDOUT: inst_block60000049: +// CHECK:STDOUT: 0: inst600000E8 +// CHECK:STDOUT: 1: inst600000E9 +// CHECK:STDOUT: 2: inst600000EA +// CHECK:STDOUT: 3: inst600000EB +// CHECK:STDOUT: 4: inst600000EC +// CHECK:STDOUT: 5: inst600000ED +// CHECK:STDOUT: 6: inst600000EE +// CHECK:STDOUT: inst_block6000004A: +// CHECK:STDOUT: 0: inst600000D3 +// CHECK:STDOUT: inst_block6000004B: +// CHECK:STDOUT: 0: inst600000D3 +// CHECK:STDOUT: 1: inst600000D4 +// CHECK:STDOUT: 2: inst600000F4 +// CHECK:STDOUT: 3: inst600000F3 +// CHECK:STDOUT: inst_block6000004C: +// CHECK:STDOUT: 0: inst600000E8 +// CHECK:STDOUT: inst_block6000004D: +// CHECK:STDOUT: 0: inst600000EA // CHECK:STDOUT: inst_block6000004E: -// CHECK:STDOUT: 0: inst600000F3 -// CHECK:STDOUT: 1: inst600000F4 -// CHECK:STDOUT: 2: inst600000F5 -// CHECK:STDOUT: 3: inst600000F6 -// CHECK:STDOUT: 4: inst600000F7 -// CHECK:STDOUT: 5: inst600000F8 -// CHECK:STDOUT: 6: inst600000F9 -// CHECK:STDOUT: 7: inst600000FA -// CHECK:STDOUT: 8: inst600000FB -// CHECK:STDOUT: 9: inst600000FC -// CHECK:STDOUT: 10: inst600000FD +// CHECK:STDOUT: 0: inst600000F7 +// CHECK:STDOUT: 1: inst600000F8 +// CHECK:STDOUT: 2: inst600000F9 +// CHECK:STDOUT: 3: inst600000FA +// CHECK:STDOUT: 4: inst600000FB +// CHECK:STDOUT: 5: inst600000FC +// CHECK:STDOUT: 6: inst600000FD +// CHECK:STDOUT: 7: inst600000FE +// CHECK:STDOUT: 8: inst600000FF +// CHECK:STDOUT: 9: inst60000100 +// CHECK:STDOUT: 10: inst60000101 // CHECK:STDOUT: inst_block6000004F: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst6000006B -// CHECK:STDOUT: 2: inst600000D0 -// CHECK:STDOUT: 3: inst600000D1 -// CHECK:STDOUT: 4: inst600000D2 -// CHECK:STDOUT: 5: inst600000DB -// CHECK:STDOUT: 6: inst600000E0 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst6000006C +// CHECK:STDOUT: 2: inst600000D3 +// CHECK:STDOUT: 3: inst600000D4 +// CHECK:STDOUT: 4: inst600000D5 +// CHECK:STDOUT: 5: inst600000DE +// CHECK:STDOUT: 6: inst600000E3 // CHECK:STDOUT: inst_block60000050: -// CHECK:STDOUT: 0: inst600000FF -// CHECK:STDOUT: 1: inst600000FE +// CHECK:STDOUT: 0: inst60000103 +// CHECK:STDOUT: 1: inst60000102 // CHECK:STDOUT: inst_block60000051: -// CHECK:STDOUT: 0: inst60000102 -// CHECK:STDOUT: 1: inst60000103 +// CHECK:STDOUT: 0: inst60000106 +// CHECK:STDOUT: 1: inst60000107 // CHECK:STDOUT: inst_block60000052: -// CHECK:STDOUT: 0: inst60000104 -// CHECK:STDOUT: 1: inst60000105 +// CHECK:STDOUT: 0: inst60000108 +// CHECK:STDOUT: 1: inst60000109 // CHECK:STDOUT: inst_block60000053: -// CHECK:STDOUT: 0: inst60000107 -// CHECK:STDOUT: 1: inst60000108 -// CHECK:STDOUT: inst_block60000054: -// CHECK:STDOUT: 0: inst60000104 -// CHECK:STDOUT: 1: inst60000105 -// CHECK:STDOUT: inst_block60000055: -// CHECK:STDOUT: 0: inst60000104 -// CHECK:STDOUT: 1: inst60000105 -// CHECK:STDOUT: 2: inst60000106 -// CHECK:STDOUT: 3: inst60000107 -// CHECK:STDOUT: 4: inst60000108 -// CHECK:STDOUT: 5: inst60000109 -// CHECK:STDOUT: 6: inst6000010A -// CHECK:STDOUT: inst_block60000056: -// CHECK:STDOUT: 0: inst60000104 -// CHECK:STDOUT: 1: inst60000105 -// CHECK:STDOUT: inst_block60000057: // CHECK:STDOUT: 0: inst6000010B // CHECK:STDOUT: 1: inst6000010C +// CHECK:STDOUT: inst_block60000054: +// CHECK:STDOUT: 0: inst60000108 +// CHECK:STDOUT: 1: inst60000109 +// CHECK:STDOUT: inst_block60000055: +// CHECK:STDOUT: 0: inst60000108 +// CHECK:STDOUT: 1: inst60000109 +// CHECK:STDOUT: 2: inst6000010A +// CHECK:STDOUT: 3: inst6000010B +// CHECK:STDOUT: 4: inst6000010C +// CHECK:STDOUT: 5: inst6000010D +// CHECK:STDOUT: 6: inst6000010E +// CHECK:STDOUT: inst_block60000056: +// CHECK:STDOUT: 0: inst60000108 +// CHECK:STDOUT: 1: inst60000109 +// CHECK:STDOUT: inst_block60000057: +// CHECK:STDOUT: 0: inst6000010F +// CHECK:STDOUT: 1: inst60000110 // CHECK:STDOUT: inst_block60000058: -// CHECK:STDOUT: 0: inst6000006B -// CHECK:STDOUT: 1: inst600000D1 -// CHECK:STDOUT: 2: inst60000110 +// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: 1: inst600000D4 +// CHECK:STDOUT: 2: inst60000114 // CHECK:STDOUT: inst_block60000059: -// CHECK:STDOUT: 0: inst60000112 +// CHECK:STDOUT: 0: inst60000116 // CHECK:STDOUT: inst_block6000005A: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: 2: inst6000010F +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst600000D3 +// CHECK:STDOUT: 2: inst60000113 // CHECK:STDOUT: inst_block6000005B: // CHECK:STDOUT: 0: inst6000004F // CHECK:STDOUT: 1: inst6000004F // CHECK:STDOUT: 2: inst6000004F // CHECK:STDOUT: inst_block6000005C: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: 2: inst6000010F -// CHECK:STDOUT: 3: inst60000119 -// CHECK:STDOUT: 4: inst6000006B -// CHECK:STDOUT: 5: inst600000D1 -// CHECK:STDOUT: 6: inst60000110 -// CHECK:STDOUT: 7: inst60000111 -// CHECK:STDOUT: 8: inst60000114 +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst600000D3 +// CHECK:STDOUT: 2: inst60000113 +// CHECK:STDOUT: 3: inst6000011D +// CHECK:STDOUT: 4: inst6000006C +// CHECK:STDOUT: 5: inst600000D4 +// CHECK:STDOUT: 6: inst60000114 +// CHECK:STDOUT: 7: inst60000115 +// CHECK:STDOUT: 8: inst60000118 // CHECK:STDOUT: inst_block6000005D: -// CHECK:STDOUT: 0: inst60000116 -// CHECK:STDOUT: 1: inst60000117 +// CHECK:STDOUT: 0: inst6000011A +// CHECK:STDOUT: 1: inst6000011B // CHECK:STDOUT: inst_block6000005E: -// CHECK:STDOUT: 0: inst6000011E +// CHECK:STDOUT: 0: inst60000122 // CHECK:STDOUT: inst_block6000005F: -// CHECK:STDOUT: 0: inst6000011C +// CHECK:STDOUT: 0: inst60000120 // CHECK:STDOUT: inst_block60000060: -// CHECK:STDOUT: 0: inst60000121 -// CHECK:STDOUT: 1: inst60000122 -// CHECK:STDOUT: 2: inst60000123 -// CHECK:STDOUT: inst_block60000061: -// CHECK:STDOUT: 0: inst60000125 -// CHECK:STDOUT: 1: inst60000127 -// CHECK:STDOUT: 2: inst60000129 -// CHECK:STDOUT: inst_block60000062: -// CHECK:STDOUT: 0: inst60000124 -// CHECK:STDOUT: 1: inst60000125 -// CHECK:STDOUT: 2: inst60000126 -// CHECK:STDOUT: 3: inst60000127 -// CHECK:STDOUT: 4: inst60000128 -// CHECK:STDOUT: 5: inst60000129 -// CHECK:STDOUT: 6: inst6000012A -// CHECK:STDOUT: 7: inst6000012B -// CHECK:STDOUT: 8: inst6000012C -// CHECK:STDOUT: inst_block60000063: -// CHECK:STDOUT: 0: inst6000010F -// CHECK:STDOUT: inst_block60000064: -// CHECK:STDOUT: 0: inst6000010F -// CHECK:STDOUT: 1: inst60000110 -// CHECK:STDOUT: 2: inst60000132 -// CHECK:STDOUT: 3: inst60000131 -// CHECK:STDOUT: inst_block60000065: -// CHECK:STDOUT: 0: inst60000124 -// CHECK:STDOUT: inst_block60000066: // CHECK:STDOUT: 0: inst60000126 -// CHECK:STDOUT: inst_block60000067: -// CHECK:STDOUT: 0: inst60000128 -// CHECK:STDOUT: inst_block60000068: -// CHECK:STDOUT: 0: inst60000135 -// CHECK:STDOUT: 1: inst60000136 +// CHECK:STDOUT: 1: inst60000127 +// CHECK:STDOUT: 2: inst60000128 +// CHECK:STDOUT: inst_block60000061: +// CHECK:STDOUT: 0: inst6000012A +// CHECK:STDOUT: 1: inst6000012C +// CHECK:STDOUT: 2: inst6000012E +// CHECK:STDOUT: inst_block60000062: +// CHECK:STDOUT: 0: inst60000129 +// CHECK:STDOUT: 1: inst6000012A +// CHECK:STDOUT: 2: inst6000012B +// CHECK:STDOUT: 3: inst6000012C +// CHECK:STDOUT: 4: inst6000012D +// CHECK:STDOUT: 5: inst6000012E +// CHECK:STDOUT: 6: inst6000012F +// CHECK:STDOUT: 7: inst60000130 +// CHECK:STDOUT: 8: inst60000131 +// CHECK:STDOUT: inst_block60000063: +// CHECK:STDOUT: 0: inst60000113 +// CHECK:STDOUT: inst_block60000064: +// CHECK:STDOUT: 0: inst60000113 +// CHECK:STDOUT: 1: inst60000114 // 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: 9: inst6000013E -// CHECK:STDOUT: 10: inst6000013F -// CHECK:STDOUT: 11: inst60000140 -// CHECK:STDOUT: 12: inst60000141 -// CHECK:STDOUT: 13: inst60000142 -// CHECK:STDOUT: 14: inst60000143 -// CHECK:STDOUT: 15: inst60000144 +// CHECK:STDOUT: 3: inst60000136 +// CHECK:STDOUT: inst_block60000065: +// CHECK:STDOUT: 0: inst60000129 +// CHECK:STDOUT: inst_block60000066: +// CHECK:STDOUT: 0: inst6000012B +// CHECK:STDOUT: inst_block60000067: +// CHECK:STDOUT: 0: inst6000012D +// CHECK:STDOUT: inst_block60000068: +// CHECK:STDOUT: 0: inst6000013A +// CHECK:STDOUT: 1: inst6000013B +// CHECK:STDOUT: 2: inst6000013C +// CHECK:STDOUT: 3: inst6000013D +// CHECK:STDOUT: 4: inst6000013E +// CHECK:STDOUT: 5: inst6000013F +// CHECK:STDOUT: 6: inst60000140 +// CHECK:STDOUT: 7: inst60000141 +// CHECK:STDOUT: 8: inst60000142 +// CHECK:STDOUT: 9: inst60000143 +// CHECK:STDOUT: 10: inst60000144 +// CHECK:STDOUT: 11: inst60000145 +// CHECK:STDOUT: 12: inst60000146 +// CHECK:STDOUT: 13: inst60000147 +// CHECK:STDOUT: 14: inst60000148 +// CHECK:STDOUT: 15: inst60000149 // CHECK:STDOUT: inst_block60000069: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: 1: inst6000006B -// CHECK:STDOUT: 2: inst600000D0 -// CHECK:STDOUT: 3: inst600000D1 -// CHECK:STDOUT: 4: inst6000010F -// CHECK:STDOUT: 5: inst60000110 -// CHECK:STDOUT: 6: inst60000111 -// CHECK:STDOUT: 7: inst6000011A -// CHECK:STDOUT: 8: inst6000011F +// CHECK:STDOUT: 0: inst6000006B +// CHECK:STDOUT: 1: inst6000006C +// CHECK:STDOUT: 2: inst600000D3 +// CHECK:STDOUT: 3: inst600000D4 +// CHECK:STDOUT: 4: inst60000113 +// CHECK:STDOUT: 5: inst60000114 +// CHECK:STDOUT: 6: inst60000115 +// CHECK:STDOUT: 7: inst6000011E +// CHECK:STDOUT: 8: inst60000123 // CHECK:STDOUT: inst_block6000006A: -// CHECK:STDOUT: 0: inst60000147 -// CHECK:STDOUT: 1: inst60000146 -// CHECK:STDOUT: 2: inst60000145 -// CHECK:STDOUT: inst_block6000006B: -// CHECK:STDOUT: 0: inst6000014A +// CHECK:STDOUT: 0: inst6000014C // CHECK:STDOUT: 1: inst6000014B -// CHECK:STDOUT: 2: inst6000014C +// CHECK:STDOUT: 2: inst6000014A +// CHECK:STDOUT: inst_block6000006B: +// CHECK:STDOUT: 0: inst6000014F +// CHECK:STDOUT: 1: inst60000150 +// CHECK:STDOUT: 2: inst60000151 // CHECK:STDOUT: inst_block6000006C: -// CHECK:STDOUT: 0: inst6000014D -// CHECK:STDOUT: 1: inst6000014E -// CHECK:STDOUT: 2: inst6000014F +// CHECK:STDOUT: 0: inst60000152 +// CHECK:STDOUT: 1: inst60000153 +// CHECK:STDOUT: 2: inst60000154 // CHECK:STDOUT: inst_block6000006D: -// CHECK:STDOUT: 0: inst60000151 -// CHECK:STDOUT: 1: inst60000152 -// CHECK:STDOUT: 2: inst60000153 -// CHECK:STDOUT: inst_block6000006E: -// CHECK:STDOUT: 0: inst6000014D -// CHECK:STDOUT: 1: inst6000014E -// CHECK:STDOUT: 2: inst6000014F -// CHECK:STDOUT: inst_block6000006F: -// CHECK:STDOUT: 0: inst6000014D -// CHECK:STDOUT: 1: inst6000014E -// CHECK:STDOUT: 2: inst6000014F -// CHECK:STDOUT: 3: inst60000150 -// CHECK:STDOUT: 4: inst60000151 -// CHECK:STDOUT: 5: inst60000152 -// CHECK:STDOUT: 6: inst60000153 -// CHECK:STDOUT: 7: inst60000154 -// CHECK:STDOUT: 8: inst60000155 -// CHECK:STDOUT: inst_block60000070: -// CHECK:STDOUT: 0: inst6000014D -// CHECK:STDOUT: 1: inst6000014E -// CHECK:STDOUT: 2: inst6000014F -// CHECK:STDOUT: inst_block60000071: // CHECK:STDOUT: 0: inst60000156 // CHECK:STDOUT: 1: inst60000157 +// CHECK:STDOUT: 2: inst60000158 +// CHECK:STDOUT: inst_block6000006E: +// CHECK:STDOUT: 0: inst60000152 +// CHECK:STDOUT: 1: inst60000153 +// CHECK:STDOUT: 2: inst60000154 +// CHECK:STDOUT: inst_block6000006F: +// CHECK:STDOUT: 0: inst60000152 +// CHECK:STDOUT: 1: inst60000153 +// CHECK:STDOUT: 2: inst60000154 +// CHECK:STDOUT: 3: inst60000155 +// CHECK:STDOUT: 4: inst60000156 +// CHECK:STDOUT: 5: inst60000157 +// CHECK:STDOUT: 6: inst60000158 +// CHECK:STDOUT: 7: inst60000159 +// CHECK:STDOUT: 8: inst6000015A +// CHECK:STDOUT: inst_block60000070: +// CHECK:STDOUT: 0: inst60000152 +// CHECK:STDOUT: 1: inst60000153 +// CHECK:STDOUT: 2: inst60000154 +// CHECK:STDOUT: inst_block60000071: +// CHECK:STDOUT: 0: inst6000015B +// CHECK:STDOUT: 1: inst6000015C // CHECK:STDOUT: inst_block60000072: -// CHECK:STDOUT: 0: inst600000B6 -// CHECK:STDOUT: 1: inst600000B7 +// CHECK:STDOUT: 0: inst600000B8 +// CHECK:STDOUT: 1: inst600000B9 // CHECK:STDOUT: 2: inst60000044 // CHECK:STDOUT: inst_block60000073: // CHECK:STDOUT: 0: inst60000017 // CHECK:STDOUT: inst_block60000074: -// CHECK:STDOUT: 0: inst6000015B +// CHECK:STDOUT: 0: inst60000160 // CHECK:STDOUT: inst_block60000075: -// CHECK:STDOUT: 0: inst6000015C +// CHECK:STDOUT: 0: inst60000161 // CHECK:STDOUT: inst_block60000076: -// CHECK:STDOUT: 0: inst6000015D +// CHECK:STDOUT: 0: inst60000162 // CHECK:STDOUT: inst_block60000077: -// CHECK:STDOUT: 0: inst6000015D +// CHECK:STDOUT: 0: inst60000162 // CHECK:STDOUT: 1: inst6000001C // CHECK:STDOUT: 2: inst6000001F -// CHECK:STDOUT: 3: inst600000BC +// CHECK:STDOUT: 3: inst600000BE // CHECK:STDOUT: inst_block60000078: -// CHECK:STDOUT: 0: inst60000161 +// CHECK:STDOUT: 0: inst60000166 // CHECK:STDOUT: inst_block60000079: // CHECK:STDOUT: 0: inst60000047 // CHECK:STDOUT: inst_block6000007A: -// CHECK:STDOUT: 0: inst6000016B -// CHECK:STDOUT: 1: inst6000016E +// CHECK:STDOUT: 0: inst60000170 +// CHECK:STDOUT: 1: inst60000173 // CHECK:STDOUT: inst_block6000007B: // CHECK:STDOUT: 0: inst60000042 // CHECK:STDOUT: 1: inst60000045 -// CHECK:STDOUT: 2: inst6000015A -// CHECK:STDOUT: 3: inst6000015C -// CHECK:STDOUT: 4: inst60000161 -// CHECK:STDOUT: 5: inst60000162 -// CHECK:STDOUT: 6: inst60000163 -// CHECK:STDOUT: 7: inst60000167 +// CHECK:STDOUT: 2: inst6000015F +// CHECK:STDOUT: 3: inst60000161 +// CHECK:STDOUT: 4: inst60000166 +// CHECK:STDOUT: 5: inst60000167 +// CHECK:STDOUT: 6: inst60000168 +// CHECK:STDOUT: 7: inst6000016C // CHECK:STDOUT: inst_block6000007C: // CHECK:STDOUT: 0: instF // CHECK:STDOUT: 1: inst60000010 diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon index dc715eeac6fb..4f2944ffd902 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon @@ -31,7 +31,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: entity_name60000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000B, return_type_inst_id: inst60000020, return_patterns_id: inst_block6000000A, body: [inst_block6000000E]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000B, return_type_inst_id: inst60000020, return_form_inst_id: inst60000021, return_patterns_id: inst_block6000000A, body: [inst_block6000000E]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index 9a6a3a50547d..d750c2c56b2c 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -233,7 +233,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %ElementType: %facet_type = assoc_const_decl @ElementType [concrete] {} // CHECK:STDOUT: %Core.import_ref.18d: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.824) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.9b9)] // CHECK:STDOUT: %Copy.impl_witness_table.e76 = impl_witness_table (%Core.import_ref.18d), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.d20: @Optional.%Optional.None.type (%Optional.None.type.fc5) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.fcb)] +// CHECK:STDOUT: %Core.import_ref.d20a: @Optional.%Optional.None.type (%Optional.None.type.fc5) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.fcb)] // CHECK:STDOUT: %Core.import_ref.aeb: @Optional.%Optional.Some.type (%Optional.Some.type.eaa) = import_ref Core//prelude/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.Some (constants.%Optional.Some.6ca)] // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/copy, Copy, loaded [concrete = constants.%Copy.type] @@ -699,7 +699,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %OptionalStorage.facet.loc17: %OptionalStorage.type = facet_value %Int.loc17, (constants.%OptionalStorage.lookup_impl_witness.b62) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.01e)] // CHECK:STDOUT: %.loc17_41: %OptionalStorage.type = converted %Int.loc17, %OptionalStorage.facet.loc17 [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.01e)] // CHECK:STDOUT: %Optional.loc17: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.01e) [symbolic = %Optional.loc11_75.1 (constants.%Optional.e48)] -// CHECK:STDOUT: %.loc17_42: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.d56) = specific_constant imports.%Core.import_ref.d20, @Optional(constants.%OptionalStorage.facet.01e) [symbolic = %Optional.None (constants.%Optional.None.b26)] +// CHECK:STDOUT: %.loc17_42: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.d56) = specific_constant imports.%Core.import_ref.d20a, @Optional(constants.%OptionalStorage.facet.01e) [symbolic = %Optional.None (constants.%Optional.None.b26)] // CHECK:STDOUT: %None.ref: @IntRange.as.Iterate.impl.Next.%Optional.None.type (%Optional.None.type.d56) = name_ref None, %.loc17_42 [symbolic = %Optional.None (constants.%Optional.None.b26)] // CHECK:STDOUT: %Optional.None.specific_fn.loc17_42.1: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet.01e) [symbolic = %Optional.None.specific_fn.loc17_42.2 (constants.%Optional.None.specific_fn)] // CHECK:STDOUT: %.loc11_47.2: ref @IntRange.as.Iterate.impl.Next.%Optional.loc11_75.1 (%Optional.e48) = splice_block %return {} diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 2e373849042d..48399f1b6450 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -811,8 +811,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Core.import_ref.ad5: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.impl_witness] // CHECK:STDOUT: %Core.import_ref.a86459.1: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] // CHECK:STDOUT: %Core.import_ref.412: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%As.type.ffe] -// CHECK:STDOUT: %Core.import_ref.d9d: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] -// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.d9d), @Core.IntLiteral.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.d9dc: %Core.IntLiteral.as.As.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.As.impl.Convert] +// CHECK:STDOUT: %As.impl_witness_table = impl_witness_table (%Core.import_ref.d9dc), @Core.IntLiteral.as.As.impl [concrete] // CHECK:STDOUT: %Core.AddWith: %AddWith.type.e05 = import_ref Core//default, AddWith, loaded [concrete = constants.%AddWith.generic] // CHECK:STDOUT: %Core.import_ref.a40 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.91c: @AddWith.%AddWith.assoc_type (%AddWith.assoc_type.b6a) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%assoc0 (constants.%assoc0.7a7)] diff --git a/toolchain/check/testdata/function/declaration/import.carbon b/toolchain/check/testdata/function/declaration/import.carbon index 0c229dd3f18d..11b045f00329 100644 --- a/toolchain/check/testdata/function/declaration/import.carbon +++ b/toolchain/check/testdata/function/declaration/import.carbon @@ -886,19 +886,19 @@ import library "extern_api"; // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.501: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: %.49e: form = init_form %i32, call_param1 [concrete] // CHECK:STDOUT: %C.type: type = fn_type @C [concrete] // CHECK:STDOUT: %C: %C.type = struct_value () [concrete] // CHECK:STDOUT: %struct_type.c: type = struct_type {.c: %i32} [concrete] // CHECK:STDOUT: %pattern_type.f5f: type = pattern_type %struct_type.c [concrete] // CHECK:STDOUT: %tuple.type.dd4: type = tuple_type (%i32) [concrete] +// CHECK:STDOUT: %.407: form = init_form %struct_type.c, call_param1 [concrete] // CHECK:STDOUT: %D.type: type = fn_type @D [concrete] // CHECK:STDOUT: %D: %D.type = struct_value () [concrete] // CHECK:STDOUT: %E.type: type = fn_type @E [concrete] // CHECK:STDOUT: %E: %E.type = struct_value () [concrete] -// CHECK:STDOUT: %.49e: form = init_form %i32, call_param1 [concrete] // CHECK:STDOUT: %tuple.type.85c: type = tuple_type (type) [concrete] // CHECK:STDOUT: %tuple.38e: %tuple.type.85c = tuple_value (%i32) [concrete] -// CHECK:STDOUT: %.407: form = init_form %struct_type.c, call_param1 [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] diff --git a/toolchain/check/testdata/function/declaration/ref.carbon b/toolchain/check/testdata/function/declaration/ref.carbon index f42c90e279e2..c34cc8621ccc 100644 --- a/toolchain/check/testdata/function/declaration/ref.carbon +++ b/toolchain/check/testdata/function/declaration/ref.carbon @@ -11,14 +11,70 @@ // TIP: To dump output, run: // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/function/declaration/ref.carbon -// --- fail_todo_ref_return.carbon +// --- ref_return.carbon + +//@include-in-dumps fn F() -> ref i32; fn G() { - // CHECK:STDERR: fail_todo_ref_return.carbon:[[@LINE+4]]:20: error: cannot bind durable reference to non-reference value of type `i32` [ConversionFailureNonRefToRef] - // CHECK:STDERR: let ref x: i32 = F(); - // CHECK:STDERR: ^~~ - // CHECK:STDERR: let ref x: i32 = F(); } + +// CHECK:STDOUT: --- ref_return.carbon +// CHECK:STDOUT: +// CHECK:STDOUT: constants { +// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] +// 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: %.cf3: form = ref_form %i32 [concrete] +// CHECK:STDOUT: %F.type: type = fn_type @F [concrete] +// CHECK:STDOUT: %F: %F.type = struct_value () [concrete] +// CHECK:STDOUT: %G.type: type = fn_type @G [concrete] +// CHECK:STDOUT: %G: %G.type = struct_value () [concrete] +// CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: imports { +// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { +// CHECK:STDOUT: .Int = %Core.Int +// CHECK:STDOUT: import Core//prelude +// 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: } +// CHECK:STDOUT: +// CHECK:STDOUT: file { +// CHECK:STDOUT: package: = namespace [concrete] { +// CHECK:STDOUT: .Core = imports.%Core +// CHECK:STDOUT: .F = %F.decl +// CHECK:STDOUT: .G = %G.decl +// CHECK:STDOUT: } +// CHECK:STDOUT: %Core.import = import Core +// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} { +// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc4_11.1: type = ref_tag %i32 +// CHECK:STDOUT: %.loc4_11.2: form = ref_form %i32 [concrete = constants.%.cf3] +// CHECK:STDOUT: } +// CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: fn @F(); +// CHECK:STDOUT: +// CHECK:STDOUT: fn @G() { +// CHECK:STDOUT: !entry: +// CHECK:STDOUT: name_binding_decl { +// CHECK:STDOUT: %x.patt: %pattern_type.7ce = ref_binding_pattern x [concrete] +// CHECK:STDOUT: } +// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] +// CHECK:STDOUT: %F.call: ref %i32 = call %F.ref() +// CHECK:STDOUT: %.loc7: type = splice_block %i32 [concrete = constants.%i32] { +// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: } +// CHECK:STDOUT: %x: ref %i32 = ref_binding x, %F.call +// CHECK:STDOUT: return +// CHECK:STDOUT: } +// CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index 7cfdfb4a617e..bae2fd1e4105 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -663,7 +663,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.567) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.567) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.567) [concrete = constants.%.650] // CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.2: %FMissingParam.as.J.impl.F.type.0f71d8.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.2 [concrete = constants.%FMissingParam.as.J.impl.F.7540f6.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -708,7 +709,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.266) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.266) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.266) [concrete = constants.%.650] // CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.80a56b.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.c6a0b7.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -754,7 +756,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: } // CHECK:STDOUT: %b: bool = value_binding b, %b.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.a9e) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.a9e) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.a9e) [concrete = constants.%.650] // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.2: %FMissingReturnType.as.J.impl.F.type.ce0d21.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.5b613a.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -804,7 +807,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.bd2) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.bd2) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.bd2) [concrete = constants.%.650] // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.2: %FDifferentParamType.as.J.impl.F.type.10926d.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.f1245a.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -854,7 +858,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref bool = out_param call_param2 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.030) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.030) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.030) [concrete = constants.%.650] // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2: %FDifferentImplicitParamType.as.J.impl.F.type.955391.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.a9ece4.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -906,7 +911,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %FDifferentReturnType = out_param call_param2 // CHECK:STDOUT: %return: ref %FDifferentReturnType = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc103: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.4a1) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.1: type = specific_constant @J.F.%.loc103_44.2, @J.F(constants.%J.facet.4a1) [concrete = bool] +// CHECK:STDOUT: %.loc103_44.2: type = specific_constant @J.F.%.loc103_44.3, @J.F(constants.%J.facet.4a1) [concrete = constants.%.650] // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.2: %FDifferentReturnType.as.J.impl.F.type.7bcb67.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.a709b1.2] { // CHECK:STDOUT: %self.patt: %pattern_type.831 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.831 = value_param_pattern %self.patt, call_param0 [concrete] @@ -957,7 +963,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %array_type.388 = out_param call_param1 // CHECK:STDOUT: %return: ref %array_type.388 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc211: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.b9f) [concrete = constants.%array_type.388] +// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.b9f) [concrete = constants.%array_type.388] +// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.F.%.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.b9f) [concrete = constants.%.749] // CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.789632.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.6e1661.2] { // CHECK:STDOUT: %x.patt: %pattern_type.8d7 = value_binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.8d7 = value_param_pattern %x.patt, call_param0 [concrete] @@ -1004,7 +1011,8 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %array_type.388 = out_param call_param1 // CHECK:STDOUT: %return: ref %array_type.388 = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc211: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.23f) [concrete = constants.%array_type.31b] +// CHECK:STDOUT: %.loc211_57.1: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.23f) [concrete = constants.%array_type.31b] +// CHECK:STDOUT: %.loc211_57.2: type = specific_constant @SelfNested.F.%.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.23f) [concrete = constants.%.c3a] // CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.75d128.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.587f77.2] { // CHECK:STDOUT: %x.patt: %pattern_type.1f1 = value_binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.1f1 = value_param_pattern %x.patt, call_param0 [concrete] diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 82eaaea326b6..0d5bde1dc01b 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -966,6 +966,7 @@ impl () as I({}) { // CHECK:STDOUT: %T.loc5_8.1 => constants.%T.67d // CHECK:STDOUT: %ptr => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 +// CHECK:STDOUT: %.loc5 => constants.%.ba4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet) { @@ -1139,6 +1140,7 @@ impl () as I({}) { // CHECK:STDOUT: %T.loc5_20.1 => constants.%T.67d // CHECK:STDOUT: %ptr => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 +// CHECK:STDOUT: %.loc5 => constants.%.7c9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_44.1(constants.%Copy.facet) { diff --git a/toolchain/check/testdata/impl/use_assoc_entity.carbon b/toolchain/check/testdata/impl/use_assoc_entity.carbon index 732658edd0fd..0052c8cdd90e 100644 --- a/toolchain/check/testdata/impl/use_assoc_entity.carbon +++ b/toolchain/check/testdata/impl/use_assoc_entity.carbon @@ -2521,7 +2521,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %u: = value_binding u, %u.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: type = specific_constant @J.F.%U.ref.loc5_17, @J.F(constants.%J.facet) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc5_17.1: type = specific_constant @J.F.%U.ref.loc5_17, @J.F(constants.%J.facet) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc5_17.2: type = specific_constant @J.F.%.loc5_17.2, @J.F(constants.%J.facet) [concrete = constants.%.4d5] // CHECK:STDOUT: %E.as.J.impl.F.decl.loc27_21.2: %E.as.J.impl.F.type.4b5c2a.2 = fn_decl @E.as.J.impl.F.loc27_21.2 [concrete = constants.%E.as.J.impl.F.b4e6ab.2] { // CHECK:STDOUT: %u.patt: %pattern_type.7ce = value_binding_pattern u [concrete] // CHECK:STDOUT: %u.param_patt: %pattern_type.7ce = value_param_pattern %u.patt, call_param0 [concrete] @@ -2591,7 +2592,7 @@ fn F() { // CHECK:STDOUT: %F.ref: %E.as.J.impl.F.type.4b5c2a.1 = name_ref F, @E.as.J.impl.%E.as.J.impl.F.decl.loc27_21.1 [concrete = constants.%E.as.J.impl.F.b4e6ab.1] // CHECK:STDOUT: %u.ref: %i32 = name_ref u, %u.param // CHECK:STDOUT: %return.ref: ref %i32 = name_ref , %return.param -// CHECK:STDOUT: %E.as.J.impl.F.call: init = call %F.ref() +// CHECK:STDOUT: %E.as.J.impl.F.call: = call %F.ref() // CHECK:STDOUT: return to %return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3137,6 +3138,7 @@ fn F() { // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.1: type = specific_constant , @J2.F(constants.%J2.facet.6c9) [concrete = ] +// CHECK:STDOUT: %.2: type = specific_constant , @J2.F(constants.%J2.facet.6c9) [concrete = ] // CHECK:STDOUT: %empty_tuple.type.as.J2.impl.F.decl.loc23_33.2: %empty_tuple.type.as.J2.impl.F.type.56bdaf.2 = fn_decl @empty_tuple.type.as.J2.impl.F.loc23_33.2 [concrete = constants.%empty_tuple.type.as.J2.impl.F.7b8679.2] { // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt, call_param0 [concrete] @@ -3176,6 +3178,7 @@ fn F() { // CHECK:STDOUT: %return: ref %C2 = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %.1: type = specific_constant , @J2.F(constants.%J2.facet.f19) [concrete = ] +// CHECK:STDOUT: %.2: type = specific_constant , @J2.F(constants.%J2.facet.f19) [concrete = ] // CHECK:STDOUT: %C2.as.J2.impl.F.decl.loc32_33.2: %C2.as.J2.impl.F.type.d2a210.2 = fn_decl @C2.as.J2.impl.F.loc32_33.2 [concrete = constants.%C2.as.J2.impl.F.720bb2.2] { // CHECK:STDOUT: %self.patt: %pattern_type.8df = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.8df = value_param_pattern %self.patt, call_param0 [concrete] @@ -3426,7 +3429,8 @@ fn F() { // CHECK:STDOUT: %return.param: ref %struct_type.x = out_param call_param2 // CHECK:STDOUT: %return: ref %struct_type.x = return_slot %return.param // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: type = specific_constant @K.F.%V.ref.loc8_29, @K.F(constants.%K.facet) [concrete = constants.%struct_type.a] +// CHECK:STDOUT: %.loc8_29.1: type = specific_constant @K.F.%V.ref.loc8_29, @K.F(constants.%K.facet) [concrete = constants.%struct_type.a] +// CHECK:STDOUT: %.loc8_29.2: type = specific_constant @K.F.%.loc8_29.2, @K.F(constants.%K.facet) [concrete = constants.%.c81] // CHECK:STDOUT: %empty_tuple.type.as.K.impl.F.decl.loc26_45.2: %empty_tuple.type.as.K.impl.F.type.1710d5.2 = fn_decl @empty_tuple.type.as.K.impl.F.loc26_45.2 [concrete = constants.%empty_tuple.type.as.K.impl.F.907e52.2] { // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern %self.patt, call_param0 [concrete] diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index f1b40de97abf..1e8e5abbfeb4 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -90,6 +90,7 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %EqWith.type.c2e: type = generic_interface_type @EqWith [concrete] // CHECK:STDOUT: %EqWith.generic: %EqWith.type.c2e = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] +// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %EqWith.type.ae7: type = facet_type <@EqWith, @EqWith(%C)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness @C.as.EqWith.impl.%EqWith.impl_witness_table [concrete] // CHECK:STDOUT: %EqWith.Equal.type.ab8: type = fn_type @EqWith.Equal, @EqWith(%C) [concrete] @@ -97,7 +98,6 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %pattern_type.476: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal.type: type = fn_type @C.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal: %C.as.EqWith.impl.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.type: type = fn_type @C.as.EqWith.impl.NotEqual [concrete] @@ -382,12 +382,12 @@ fn TestLhsBad(a: D, b: C) -> bool { // CHECK:STDOUT: %EqWith.type.c2e: type = generic_interface_type @EqWith [concrete] // CHECK:STDOUT: %EqWith.generic: %EqWith.type.c2e = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] +// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %EqWith.type.470: type = facet_type <@EqWith, @EqWith(%C)> [concrete] // CHECK:STDOUT: %EqWith.impl_witness: = impl_witness @C.as.EqWith.impl.%EqWith.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.224: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal.type: type = fn_type @C.as.EqWith.impl.Equal [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.Equal: %C.as.EqWith.impl.Equal.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.EqWith.impl.NotEqual.type: type = fn_type @C.as.EqWith.impl.NotEqual [concrete] diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 270ef3ba417c..136b5f5a579c 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -88,6 +88,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %OrderedWith.type.270: type = generic_interface_type @OrderedWith [concrete] // CHECK:STDOUT: %OrderedWith.generic: %OrderedWith.type.270 = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.831: type = pattern_type bool [concrete] +// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %OrderedWith.type.c3d: type = facet_type <@OrderedWith, @OrderedWith(%C)> [concrete] // CHECK:STDOUT: %OrderedWith.impl_witness: = impl_witness @C.as.OrderedWith.impl.%OrderedWith.impl_witness_table [concrete] // CHECK:STDOUT: %OrderedWith.Less.type.65f: type = fn_type @OrderedWith.Less, @OrderedWith(%C) [concrete] @@ -97,7 +98,6 @@ fn TestGreaterEqual(a: D, b: D) -> bool { // CHECK:STDOUT: %pattern_type.476: type = pattern_type %C [concrete] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] -// CHECK:STDOUT: %.650: form = init_form bool, call_param2 [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.Less.type: type = fn_type @C.as.OrderedWith.impl.Less [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.Less: %C.as.OrderedWith.impl.Less.type = struct_value () [concrete] // CHECK:STDOUT: %C.as.OrderedWith.impl.LessOrEquivalent.type: type = fn_type @C.as.OrderedWith.impl.LessOrEquivalent [concrete] diff --git a/toolchain/check/thunk.cpp b/toolchain/check/thunk.cpp index e1a773a02ab2..70bd0ceae97a 100644 --- a/toolchain/check/thunk.cpp +++ b/toolchain/check/thunk.cpp @@ -145,6 +145,19 @@ static auto ClonePatternBlock(Context& context, SemIR::SpecificId specific_id, }); } +static auto CloneInstId(Context& context, SemIR::SpecificId specific_id, + SemIR::InstId inst_id) -> SemIR::InstId { + if (!inst_id.has_value()) { + return SemIR::InstId::None; + } + + return GetOrAddInst( + context, SemIR::LocId(inst_id), + {.type_id = SemIR::TypeType::TypeId, + .inst_id = inst_id, + .specific_id = specific_id}); +} + static auto CloneTypeInstId(Context& context, SemIR::SpecificId specific_id, SemIR::TypeInstId inst_id) -> SemIR::TypeInstId { if (!inst_id.has_value()) { @@ -152,10 +165,7 @@ static auto CloneTypeInstId(Context& context, SemIR::SpecificId specific_id, } return context.types().GetAsTypeInstId( - GetOrAddInst(context, SemIR::LocId(inst_id), - {.type_id = SemIR::TypeType::TypeId, - .inst_id = inst_id, - .specific_id = specific_id})); + CloneInstId(context, specific_id, inst_id)); } static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, @@ -177,6 +187,8 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, signature.return_patterns_id); auto return_type_inst_id = CloneTypeInstId(context, signature_specific_id, signature.return_type_inst_id); + auto return_form_inst_id = CloneInstId(context, signature_specific_id, + signature.return_form_inst_id); auto self_param_id = FindSelfPattern(context, implicit_param_patterns_id); auto pattern_block_id = context.pattern_block_stack().Pop(); @@ -212,6 +224,7 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, .definition_id = decl_id}, {.call_params_id = call_params_id, .return_type_inst_id = return_type_inst_id, + .return_form_inst_id = return_form_inst_id, .return_patterns_id = return_patterns_id, .virtual_modifier = callee.virtual_modifier, .virtual_index = callee.virtual_index, diff --git a/toolchain/sem_ir/expr_info.cpp b/toolchain/sem_ir/expr_info.cpp index 4d302236be16..d17257fb23b1 100644 --- a/toolchain/sem_ir/expr_info.cpp +++ b/toolchain/sem_ir/expr_info.cpp @@ -22,6 +22,7 @@ static auto AsAnyInstId(Inst::ArgAndKind arg) -> InstId { return arg.As(); } +// NOLINTBEGIN(readability-function-size) auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { const File* ir = &file; @@ -41,24 +42,64 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { // Handle any special cases that use // ComputedExprCategory::DependsOnOperands. - auto handle_special_case = [&](TypedInstT inst) { + auto handle_special_case = + [&]( + TypedInstT inst) -> std::optional { if constexpr (std::same_as) { inst_id = inst.base_id; // A value of class type is a pointer to an object representation. // Therefore, if the base is a value, the result is an ephemeral // reference. value_category = ExprCategory::EphemeralRef; + return std::nullopt; } else if constexpr (std::same_as || std::same_as) { auto import_ir_inst = ir->import_ir_insts().Get(inst.import_ir_inst_id); ir = ir->import_irs().Get(import_ir_inst.ir_id()).sem_ir; inst_id = import_ir_inst.inst_id(); + return std::nullopt; + } else if constexpr (std::same_as) { + auto callee = GetCallee(file, inst.callee_id); + CARBON_KIND_SWITCH(callee) { + case CARBON_KIND(SemIR::CalleeError _): { + return ExprCategory::Error; + } + case CARBON_KIND(SemIR::CalleeFunction callee_function): { + const auto& function = + file.functions().Get(callee_function.function_id); + auto return_form_id = function.GetDeclaredReturnForm( + file, callee_function.resolved_specific_id); + if (!return_form_id.has_value()) { + // Treat as equivalent to `-> ()`. + return ExprCategory::Initializing; + } + auto return_form = file.insts().Get(return_form_id); + CARBON_KIND_SWITCH(return_form) { + case CARBON_KIND(InitForm _): + return ExprCategory::Initializing; + case CARBON_KIND(RefForm _): + return ExprCategory::DurableRef; + case CARBON_KIND(ErrorInst _): + return ExprCategory::Error; + default: + CARBON_FATAL("Unexpected inst kind: {0}", return_form); + } + } + case CARBON_KIND(SemIR::CalleeNonFunction _): { + return ExprCategory::NotExpr; + } + case CARBON_KIND(SemIR::CalleeCppOverloadSet _): { + // TODO: support `ref` returns from C++. + return ExprCategory::Initializing; + } + } } else { static_assert( TypedInstT::Kind.expr_category().TryAsComputedCategory() != ComputedExprCategory::DependsOnOperands, "Missing expression category computation for type"); } + CARBON_FATAL("Unreachable"); }; // If the category depends on the operands of the instruction, determine it. @@ -82,16 +123,21 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { case ComputedExprCategory::DependsOnOperands: { switch (untyped_inst.kind()) { -#define CARBON_SEM_IR_INST_KIND(TypedInstT) \ - case TypedInstT::Kind: \ - handle_special_case(untyped_inst.As()); \ - break; +#define CARBON_SEM_IR_INST_KIND(TypedInstT) \ + case TypedInstT::Kind: { \ + auto category = handle_special_case(untyped_inst.As()); \ + if (category.has_value()) { \ + return *category; \ + } \ + break; \ + } #include "toolchain/sem_ir/inst_kind.def" } } } } } +// NOLINTEND(readability-function-size) auto FindReturnSlotArgForInitializer(const File& sem_ir, InstId init_id) -> InstId { diff --git a/toolchain/sem_ir/expr_info.h b/toolchain/sem_ir/expr_info.h index 8a6000999592..010c2268728e 100644 --- a/toolchain/sem_ir/expr_info.h +++ b/toolchain/sem_ir/expr_info.h @@ -21,9 +21,9 @@ inline auto IsRefCategory(ExprCategory cat) -> bool { return cat == ExprCategory::DurableRef || cat == ExprCategory::EphemeralRef; } -// Given an initializing expression, find its return slot argument. Returns -// `None` if there is no return slot, because the initialization is not -// performed in place. +// Given a primitive-form initializing expression, find its return slot +// argument. Returns `None` if there is no return slot, because the +// initialization is not performed in place. auto FindReturnSlotArgForInitializer(const File& sem_ir, InstId init_id) -> InstId; diff --git a/toolchain/sem_ir/function.cpp b/toolchain/sem_ir/function.cpp index 8ff837701c2b..ec624693878a 100644 --- a/toolchain/sem_ir/function.cpp +++ b/toolchain/sem_ir/function.cpp @@ -140,4 +140,15 @@ auto Function::GetDeclaredReturnType(const File& file, GetConstantValueInSpecific(file, specific_id, return_type_inst_id)); } +auto Function::GetDeclaredReturnForm(const File& file, + SpecificId specific_id) const -> InstId { + if (!return_form_inst_id.has_value()) { + // Treat as equivalent to `-> ()`. + return InstId::None; + } + auto return_form_constant_id = + GetConstantValueInSpecific(file, specific_id, return_form_inst_id); + return file.constant_values().GetInstId(return_form_constant_id); +} + } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/function.h b/toolchain/sem_ir/function.h index 87beb28bb9ea..cb6738a7e628 100644 --- a/toolchain/sem_ir/function.h +++ b/toolchain/sem_ir/function.h @@ -44,10 +44,14 @@ struct FunctionFields { // definition. InstBlockId call_params_id; - // The type inst representing the function's explicitly declared return type, - // if any. + // The inst representing the type component of return_form_inst_id. + // TODO: remove this in favor of return_form_inst_id. TypeInstId return_type_inst_id; + // The inst representing the function's explicitly declared return form, if + // any. + InstId return_form_inst_id; + // The call parameter pattern insts that are declared by the function's return // form declaration. They will all be OutParamPatterns, and there will be one // for each primitive initializing form in the return form, but they may or @@ -116,6 +120,9 @@ struct Function : public EntityWithParamsBase, if (return_type_inst_id.has_value()) { out << ", return_type_inst_id: " << return_type_inst_id; } + if (return_type_inst_id.has_value()) { + out << ", return_form_inst_id: " << return_form_inst_id; + } if (return_patterns_id.has_value()) { out << ", return_patterns_id: " << return_patterns_id; } @@ -171,6 +178,14 @@ struct Function : public EntityWithParamsBase, SpecificId specific_id = SpecificId::None) const -> TypeId; + // Gets the canonical declared return form for a specific version of this + // function, or for the original declaration if no specific is specified. + // Returns `None` if the function was declared without a return form, in which + // case the effective return form is an empty tuple initializing expression. + auto GetDeclaredReturnForm(const File& file, + SpecificId specific_id = SpecificId::None) const + -> InstId; + // Sets that this function is a builtin function. auto SetBuiltinFunction(BuiltinFunctionKind kind) -> void { CARBON_CHECK(special_function_kind == SpecialFunctionKind::None); diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index c3305675b38d..63dcdcf63f5c 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -371,7 +371,7 @@ struct Call { // conversions. static constexpr auto Kind = InstKind::Call.Define( {.ir_name = "call", - .expr_category = ExprCategory::Initializing, + .expr_category = ComputedExprCategory::DependsOnOperands, .constant_needs_inst_id = InstConstantNeedsInstIdKind::DuringEvaluation}); @@ -1049,13 +1049,13 @@ struct InPlaceInit { struct InitForm { static constexpr auto Kind = InstKind::InitForm.Define( {.ir_name = "init_form", - .constant_kind = InstConstantKind::WheneverPossible, + .constant_kind = InstConstantKind::Always, .is_lowered = false}); // Always FormType TypeId type_id; // The type component of the form. - InstId type_component_inst_id; + TypeInstId type_component_inst_id; // If this is a function's return form, the index of the corresponding // `OutParam` in the function's `Call` parameter list. CallParamIndex index; @@ -1366,11 +1366,11 @@ struct RefForm { static constexpr auto Kind = InstKind::RefForm.Define( {.ir_name = "ref_form", - .constant_kind = InstConstantKind::WheneverPossible, + .constant_kind = InstConstantKind::Always, .is_lowered = false}); TypeId type_id; - InstId type_component_inst_id; + TypeInstId type_component_inst_id; }; // A by-reference `Call` parameter. See AnyParam for member documentation. Note