diff --git a/toolchain/check/call.cpp b/toolchain/check/call.cpp index 21799490572b..ca9270148e55 100644 --- a/toolchain/check/call.cpp +++ b/toolchain/check/call.cpp @@ -221,7 +221,7 @@ static auto CheckCalleeFunctionReturnType(Context& context, SemIR::LocId loc_id, &context.emitter(), [&](auto& builder) { CARBON_DIAGNOSTIC(IncompleteReturnTypeHere, Note, "return type declared here"); - builder.Note(function.return_slot_pattern_id, IncompleteReturnTypeHere); + builder.Note(function.return_type_inst_id, IncompleteReturnTypeHere); }); return CheckFunctionReturnType(context, loc_id, function, callee_specific_id); } diff --git a/toolchain/check/context.cpp b/toolchain/check/context.cpp index 528a1b14732e..e3edaccb3452 100644 --- a/toolchain/check/context.cpp +++ b/toolchain/check/context.cpp @@ -72,6 +72,7 @@ auto Context::VerifyOnFinish() const -> void { vtable_stack_.VerifyOnFinish(); region_stack_.VerifyOnFinish(); CARBON_CHECK(impl_lookup_stack_.empty()); + CARBON_CHECK(return_type_inst_id_ == std::nullopt); #ifndef NDEBUG if (auto verify = sem_ir_->Verify(); !verify.ok()) { diff --git a/toolchain/check/context.h b/toolchain/check/context.h index 2f852313d240..fbefa66bf20c 100644 --- a/toolchain/check/context.h +++ b/toolchain/check/context.h @@ -256,6 +256,25 @@ class Context { return rewrites_stack_; } + // Pushes inst_id onto the stack of return type declarations for in-progress + // function declarations. + // + // Note: the "stack" currently can only have one element, but that restriction + // can be relaxed if it becomes possible to have multiple pending return type + // declarations. + auto PushReturnTypeInstId(SemIR::TypeInstId inst_id) -> void { + CARBON_CHECK(return_type_inst_id_ == std::nullopt, + "TODO: make return_type_inst_id_ a stack if necessary"); + return_type_inst_id_ = inst_id; + } + + // Pops a TypeInstId off the stack of return type declarations for in-progress + // function declarations. + auto PopReturnTypeInstId() -> SemIR::TypeInstId { + CARBON_CHECK(return_type_inst_id_ != std::nullopt); + return *std::exchange(return_type_inst_id_, std::nullopt); + } + // -------------------------------------------------------------------------- // Directly expose SemIR::File data accessors for brevity in calls. // -------------------------------------------------------------------------- @@ -492,6 +511,9 @@ class Context { // value on the RHS. Used during checking of a `where` expression to allow // constraints to access values from earlier constraints. llvm::SmallVector> rewrites_stack_; + + // Declared return type for the in-progress function declaration, if any. + std::optional return_type_inst_id_; }; } // namespace Carbon::Check diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index 662df07e5e70..4abcffc3da07 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1811,7 +1811,7 @@ auto ConvertCallArgs(Context& context, SemIR::LocId call_loc_id, -> SemIR::InstBlockId { auto param_patterns = context.inst_blocks().GetOrEmpty(callee.param_patterns_id); - auto return_slot_pattern_id = callee.return_slot_pattern_id; + auto return_patterns_id = callee.return_patterns_id; // The caller should have ensured this callee has the right arity. CARBON_CHECK(arg_refs.size() == param_patterns.size()); @@ -1828,7 +1828,7 @@ auto ConvertCallArgs(Context& context, SemIR::LocId call_loc_id, } return CallerPatternMatch(context, callee_specific_id, callee.self_param_id, - callee.param_patterns_id, return_slot_pattern_id, + callee.param_patterns_id, return_patterns_id, self_id, arg_refs, return_slot_arg_id); } diff --git a/toolchain/check/cpp/import.cpp b/toolchain/check/cpp/import.cpp index b3e8b88572ba..7eb9613ae1b8 100644 --- a/toolchain/check/cpp/import.cpp +++ b/toolchain/check/cpp/import.cpp @@ -1220,6 +1220,9 @@ static auto MapTagType(Context& context, const clang::TagType& type) SemIR::TypeInstId record_type_inst_id = context.types().GetAsTypeInstId(tag_inst_id); return { + // TODO: inst_id's location should be the location of the usage, not + // the location of the type definition. Possibly we should synthesize a + // NameRef inst, to match how this would work in Carbon code. .inst_id = record_type_inst_id, .type_id = context.types().GetTypeIdForTypeInstId(record_type_inst_id)}; } @@ -1559,19 +1562,28 @@ static auto GetReturnTypeExpr(Context& context, SemIR::LocId loc_id, .type_id = context.types().GetTypeIdForTypeInstId(record_type_inst_id)}; } -// Returns the return pattern of the given function declaration. In case of an -// unsupported return type, it produces a diagnostic and returns -// `SemIR::ErrorInst::InstId`. Constructors are treated as returning a class -// instance. -static auto GetReturnPattern(Context& context, SemIR::LocId loc_id, - clang::FunctionDecl* clang_decl) -> SemIR::InstId { +// Information about a function's declared return type, corresponding to the +// fields of SemIR::Function with the same names. +struct ReturnInfo { + SemIR::TypeInstId return_type_inst_id; + SemIR::InstBlockId return_patterns_id; +}; + +// Returns information about the declared return type of the given function +// declaration. In case of an unsupported return type, it produces a diagnostic, +// and the returned return_type_inst_id will be `SemIR::ErrorInst::InstId`. +// Constructors are treated as returning a class instance. +static auto GetReturnInfo(Context& context, SemIR::LocId loc_id, + clang::FunctionDecl* clang_decl) -> ReturnInfo { auto [type_inst_id, type_id] = GetReturnTypeExpr(context, loc_id, clang_decl); if (!type_inst_id.has_value()) { // void. - return SemIR::InstId::None; + return {.return_type_inst_id = type_inst_id, + .return_patterns_id = SemIR::InstBlockId::None}; } if (type_inst_id == SemIR::ErrorInst::TypeInstId) { - return SemIR::ErrorInst::InstId; + return {.return_type_inst_id = type_inst_id, + .return_patterns_id = SemIR::InstBlockId::None}; } auto pattern_type_id = GetPatternType(context, type_id); clang::SourceLocation return_type_loc = @@ -1597,33 +1609,34 @@ static auto GetReturnPattern(Context& context, SemIR::LocId loc_id, SemIR::OutParamPattern({.type_id = pattern_type_id, .subpattern_id = return_slot_pattern_id, .index = SemIR::CallParamIndex::None}))); - return param_pattern_id; + auto return_patterns_id = context.inst_blocks().Add({param_pattern_id}); + return {.return_type_inst_id = type_inst_id, + .return_patterns_id = return_patterns_id}; } namespace { -// Represents the parameter patterns block id, the return slot pattern id and -// the call parameters block id for a function declaration. -struct FunctionParamsInsts { +// Represents the insts and inst blocks associated with the parameters and +// returns of a function declaration, corresponding to the fields of +// SemIR::Function with the same names. +struct FunctionSignatureInsts { SemIR::InstBlockId implicit_param_patterns_id; SemIR::InstBlockId param_patterns_id; - SemIR::InstId return_slot_pattern_id; + SemIR::TypeInstId return_type_inst_id; + SemIR::InstBlockId return_patterns_id; SemIR::InstBlockId call_params_id; }; } // namespace -// Creates a block containing the parameter pattern instructions for the -// explicit parameters, a parameter pattern instruction for the return type and -// a block containing the call parameters of the function. Emits a callee -// pattern-match for the explicit parameter patterns and the return slot pattern -// to create the Call parameters instructions block. Currently the implicit -// parameter patterns are not taken into account. Returns the parameter patterns -// block id, the return slot pattern id, and the call parameters block id. -// Produces a diagnostic and returns `std::nullopt` if the function declaration -// has an unsupported parameter type. -static auto CreateFunctionParamsInsts(Context& context, SemIR::LocId loc_id, - clang::FunctionDecl* clang_decl, - int num_params) - -> std::optional { +// Creates the insts and inst blocks that represent the parameters and returns +// of the given C++ function's Carbon counterpart, including emitting a callee +// pattern match to create the `Call` parameters, and returns a +// FunctionSignatureInsts containing the results. Produces a diagnostic and +// returns `std::nullopt` if the function declaration has an unsupported +// parameter type. +static auto CreateFunctionSignatureInsts(Context& context, SemIR::LocId loc_id, + clang::FunctionDecl* clang_decl, + int num_params) + -> std::optional { auto implicit_param_patterns_id = MakeImplicitParamPatternsBlockId(context, loc_id, *clang_decl); if (!implicit_param_patterns_id.has_value()) { @@ -1634,18 +1647,20 @@ static auto CreateFunctionParamsInsts(Context& context, SemIR::LocId loc_id, if (!param_patterns_id.has_value()) { return std::nullopt; } - auto return_slot_pattern_id = GetReturnPattern(context, loc_id, clang_decl); - if (SemIR::ErrorInst::InstId == return_slot_pattern_id) { + auto [return_type_inst_id, return_patterns_id] = + GetReturnInfo(context, loc_id, clang_decl); + if (return_type_inst_id == SemIR::ErrorInst::TypeInstId) { return std::nullopt; } auto call_params_id = CalleePatternMatch(context, implicit_param_patterns_id, param_patterns_id, - return_slot_pattern_id); + return_patterns_id); return {{.implicit_param_patterns_id = implicit_param_patterns_id, .param_patterns_id = param_patterns_id, - .return_slot_pattern_id = return_slot_pattern_id, + .return_type_inst_id = return_type_inst_id, + .return_patterns_id = return_patterns_id, .call_params_id = call_params_id}}; } @@ -1689,7 +1704,7 @@ static auto ImportFunction(Context& context, SemIR::LocId loc_id, context.pattern_block_stack().Push(); auto function_params_insts = - CreateFunctionParamsInsts(context, loc_id, clang_decl, num_params); + CreateFunctionSignatureInsts(context, loc_id, clang_decl, num_params); auto pattern_block_id = context.pattern_block_stack().Pop(); auto decl_block_id = context.inst_block_stack().Pop(); @@ -1735,7 +1750,8 @@ static auto ImportFunction(Context& context, SemIR::LocId loc_id, .first_owning_decl_id = decl_id, .definition_id = SemIR::InstId::None}, {.call_params_id = function_params_insts->call_params_id, - .return_slot_pattern_id = function_params_insts->return_slot_pattern_id, + .return_type_inst_id = function_params_insts->return_type_inst_id, + .return_patterns_id = function_params_insts->return_patterns_id, .virtual_modifier = virtual_modifier, .virtual_index = virtual_index, .self_param_id = FindSelfPattern( diff --git a/toolchain/check/cpp/thunk.cpp b/toolchain/check/cpp/thunk.cpp index 7f625a5193f7..a7a294eecebe 100644 --- a/toolchain/check/cpp/thunk.cpp +++ b/toolchain/check/cpp/thunk.cpp @@ -559,19 +559,26 @@ auto PerformCppThunkCall(Context& context, SemIR::LocId loc_id, auto& callee_function = context.functions().Get(callee_function_id); auto callee_function_params = context.inst_blocks().Get(callee_function.call_params_id); + auto callee_return_patterns = + context.inst_blocks().GetOrEmpty(callee_function.return_patterns_id); auto thunk_callee = GetCalleeAsFunction(context.sem_ir(), thunk_callee_id); auto& thunk_function = context.functions().Get(thunk_callee.function_id); auto thunk_function_params = context.inst_blocks().Get(thunk_function.call_params_id); + auto thunk_return_patterns = + context.inst_blocks().GetOrEmpty(thunk_function.return_patterns_id); + + CARBON_CHECK( + callee_return_patterns.size() <= 1 && thunk_return_patterns.size() <= 1, + "TODO: generalize this logic to support multiple return patterns."); // Whether we need to pass a return address to the thunk as a final argument. bool thunk_takes_return_address = - callee_function.return_slot_pattern_id.has_value() && - !thunk_function.return_slot_pattern_id.has_value(); + !callee_return_patterns.empty() && thunk_return_patterns.empty(); // The number of arguments we should be acquiring in order to call the thunk. - // This includes the return address parameter, if any. + // This includes the return address parameters, if any. unsigned num_thunk_args = context.inst_blocks().Get(thunk_function.param_patterns_id).size(); @@ -585,15 +592,13 @@ auto PerformCppThunkCall(Context& context, SemIR::LocId loc_id, return_slot_id = callee_arg_ids.consume_back(); } - // If there's a return slot pattern, drop the corresponding parameter. + // If there are return slot patterns, drop the corresponding parameters. // TODO: The parameter should probably only be created if the return pattern // actually needs a return address to be passed in. - if (thunk_function.return_slot_pattern_id.has_value()) { - thunk_function_params.consume_back(); - } - if (callee_function.return_slot_pattern_id.has_value()) { - callee_function_params.consume_back(); - } + thunk_function_params = + thunk_function_params.drop_back(thunk_return_patterns.size()); + callee_function_params = + callee_function_params.drop_back(callee_return_patterns.size()); // We assume that the call parameters exactly match the parameter patterns for // both the thunk and the callee. This is currently guaranteed because we only diff --git a/toolchain/check/function.cpp b/toolchain/check/function.cpp index 3e7c7dee42b7..ac88eed2839c 100644 --- a/toolchain/check/function.cpp +++ b/toolchain/check/function.cpp @@ -135,9 +135,8 @@ auto CheckFunctionDefinitionSignature(Context& context, context.inst_blocks().GetOrEmpty(function.call_params_id); // Check the return type is complete. - if (function.return_slot_pattern_id.has_value()) { - CheckFunctionReturnType(context, - SemIR::LocId(function.return_slot_pattern_id), + if (function.return_type_inst_id.has_value()) { + CheckFunctionReturnType(context, SemIR::LocId(function.return_type_inst_id), function, SemIR::SpecificId::None); // Don't re-check the return type below. params_to_complete.consume_back(); diff --git a/toolchain/check/global_init.cpp b/toolchain/check/global_init.cpp index f96403be2fc6..0a06959b9c26 100644 --- a/toolchain/check/global_init.cpp +++ b/toolchain/check/global_init.cpp @@ -49,7 +49,8 @@ auto GlobalInit::Finalize() -> void { .non_owning_decl_id = SemIR::InstId::None, .first_owning_decl_id = SemIR::InstId::None}, {.call_params_id = SemIR::InstBlockId::Empty, - .return_slot_pattern_id = SemIR::InstId::None, + .return_type_inst_id = SemIR::TypeInstId::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 b20b81237d25..d3e6f1fb2037 100644 --- a/toolchain/check/handle_function.cpp +++ b/toolchain/check/handle_function.cpp @@ -56,6 +56,7 @@ auto HandleParseNode(Context& context, Parse::ReturnTypeId node_id) -> bool { // Propagate the type expression. auto [type_node_id, type_inst_id] = context.node_stack().PopExprWithNodeId(); auto as_type = ExprAsType(context, type_node_id, type_inst_id); + context.PushReturnTypeInstId(as_type.inst_id); // If the previous node was `IdentifierNameBeforeParams`, then it would have // caused these entries to be pushed to the pattern stacks. But it's possible @@ -167,7 +168,8 @@ static auto MergeFunctionRedecl(Context& context, // match IDs in the signature. prev_function.MergeDefinition(new_function); prev_function.call_params_id = new_function.call_params_id; - prev_function.return_slot_pattern_id = new_function.return_slot_pattern_id; + prev_function.return_type_inst_id = new_function.return_type_inst_id; + prev_function.return_patterns_id = new_function.return_patterns_id; prev_function.self_param_id = new_function.self_param_id; } if (prev_import_ir_id.has_value()) { @@ -383,14 +385,18 @@ static auto BuildFunctionDecl(Context& context, Parse::AnyFunctionDeclId node_id, bool is_definition) -> std::pair { - auto return_slot_pattern_id = SemIR::InstId::None; + llvm::SmallVector return_patterns; + auto return_type_inst_id = SemIR::TypeInstId::None; if (auto [return_node, maybe_return_slot_pattern_id] = context.node_stack().PopWithNodeIdIf(); maybe_return_slot_pattern_id) { - return_slot_pattern_id = *maybe_return_slot_pattern_id; + return_patterns.push_back(*maybe_return_slot_pattern_id); + return_type_inst_id = context.PopReturnTypeInstId(); + CARBON_CHECK(return_type_inst_id.has_value()); } - auto name = PopNameComponent(context, return_slot_pattern_id); + auto return_patterns_id = context.inst_blocks().Add(return_patterns); + auto name = PopNameComponent(context, return_patterns_id); auto name_context = context.decl_name_stack().FinishName(name); context.node_stack() @@ -421,7 +427,8 @@ static auto BuildFunctionDecl(Context& context, SemIR::Function{name_context.MakeEntityWithParamsBase( name, decl_id, is_extern, introducer.extern_library), {.call_params_id = name.call_params_id, - .return_slot_pattern_id = name.return_slot_pattern_id, + .return_type_inst_id = return_type_inst_id, + .return_patterns_id = return_patterns_id, .virtual_modifier = virtual_modifier, .self_param_id = self_param_id}}; if (is_definition) { @@ -542,9 +549,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_slot_pattern_id.has_value()) { + if (context.functions().Get(function_id).return_type_inst_id.has_value()) { CARBON_DIAGNOSTIC( MissingReturnStatement, Error, "missing `return` at end of function with declared return type"); @@ -610,11 +615,12 @@ static auto IsValidBuiltinDeclaration(Context& context, return false; } - // Find the list of call parameters other than the implicit return slot. - auto call_params = context.inst_blocks().Get(function.call_params_id); - if (function.return_slot_pattern_id.has_value()) { - call_params.consume_back(); - } + // Find the list of call parameters other than the implicit return slots. + auto call_params = context.inst_blocks() + .Get(function.call_params_id) + .drop_back(context.inst_blocks() + .GetOrEmpty(function.return_patterns_id) + .size()); // Get the return type. This is `()` if none was specified. auto return_type_id = function.GetDeclaredReturnType(context.sem_ir()); diff --git a/toolchain/check/handle_impl.cpp b/toolchain/check/handle_impl.cpp index 11d443faae8a..57148ccc2ef8 100644 --- a/toolchain/check/handle_impl.cpp +++ b/toolchain/check/handle_impl.cpp @@ -156,7 +156,7 @@ static auto PopImplIntroducerAndParamsAsNameComponent( // because `impl`s are never actually called at runtime. auto call_params_id = CalleePatternMatch(context, *implicit_param_patterns_id, - SemIR::InstBlockId::None, SemIR::InstId::None); + SemIR::InstBlockId::None, SemIR::InstBlockId::None); CARBON_CHECK(call_params_id == SemIR::InstBlockId::Empty || llvm::all_of(context.inst_blocks().Get(call_params_id), [](SemIR::InstId inst_id) { @@ -186,7 +186,6 @@ static auto PopImplIntroducerAndParamsAsNameComponent( .params_loc_id = Parse::NodeId::None, .param_patterns_id = SemIR::InstBlockId::None, .call_params_id = SemIR::InstBlockId::None, - .return_slot_pattern_id = SemIR::InstId::None, .pattern_block_id = pattern_block_id}; } diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 4dfa9ce3871f..7aac1bef4f81 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -2155,7 +2155,8 @@ static auto MakeFunctionDecl(ImportContext& context, function_decl.function_id = context.local_functions().Add( {GetIncompleteLocalEntityBase(context, function_decl_id, import_function), {.call_params_id = SemIR::InstBlockId::None, - .return_slot_pattern_id = SemIR::InstId::None, + .return_type_inst_id = SemIR::TypeInstId::None, + .return_patterns_id = SemIR::InstBlockId::None, .virtual_modifier = import_function.virtual_modifier, .virtual_index = import_function.virtual_index}}); @@ -2211,10 +2212,9 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, } auto return_type_const_id = SemIR::ConstantId::None; - if (import_function.return_slot_pattern_id.has_value()) { - return_type_const_id = GetLocalConstantId( - resolver, resolver.import_insts().GetAttachedType( - import_function.return_slot_pattern_id)); + if (import_function.return_type_inst_id.has_value()) { + return_type_const_id = + GetLocalConstantId(resolver, import_function.return_type_inst_id); } auto parent_scope_id = GetLocalNameScopeId(resolver, import_function.parent_scope_id); @@ -2225,9 +2225,8 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, auto generic_data = GetLocalGenericData(resolver, import_function.generic_id); auto self_param_id = GetLocalConstantInstId(resolver, import_function.self_param_id); - auto return_slot_pattern_id = - GetLocalConstantInstId(resolver, import_function.return_slot_pattern_id); - + auto return_patterns = + GetLocalInstBlockContents(resolver, import_function.return_patterns_id); auto& new_function = resolver.local_functions().Get(function_id); if (resolver.HasNewWork()) { return ResolveResult::Retry(function_const_id, @@ -2242,8 +2241,13 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, new_function.self_param_id = self_param_id; new_function.param_patterns_id = GetLocalCanonicalInstBlockId( resolver, import_function.param_patterns_id, param_patterns); - new_function.return_slot_pattern_id = return_slot_pattern_id; - + new_function.return_type_inst_id = SemIR::TypeInstId::None; + if (import_function.return_type_inst_id.has_value()) { + new_function.return_type_inst_id = AddLoadedImportRefForType( + resolver, import_function.return_type_inst_id, return_type_const_id); + } + new_function.return_patterns_id = GetLocalCanonicalInstBlockId( + resolver, import_function.return_patterns_id, return_patterns); if (import_function.definition_id.has_value()) { new_function.definition_id = new_function.first_owning_decl_id; } diff --git a/toolchain/check/name_component.cpp b/toolchain/check/name_component.cpp index df6136a1274c..3f88bee61407 100644 --- a/toolchain/check/name_component.cpp +++ b/toolchain/check/name_component.cpp @@ -9,7 +9,7 @@ namespace Carbon::Check { -auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id) +auto PopNameComponent(Context& context, SemIR::InstBlockId return_patterns_id) -> NameComponent { Parse::NodeId first_param_node_id = Parse::NoneNodeId(); Parse::NodeId last_param_node_id = Parse::NoneNodeId(); @@ -48,10 +48,9 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id) auto pattern_block_id = SemIR::InstBlockId::None; if (param_patterns_id->has_value() || implicit_param_patterns_id->has_value() || - return_slot_pattern_id.has_value()) { - call_params_id = - CalleePatternMatch(context, *implicit_param_patterns_id, - *param_patterns_id, return_slot_pattern_id); + (!context.inst_blocks().GetOrEmpty(return_patterns_id).empty())) { + call_params_id = CalleePatternMatch(context, *implicit_param_patterns_id, + *param_patterns_id, return_patterns_id); pattern_block_id = context.pattern_block_stack().Pop(); context.full_pattern_stack().PopFullPattern(); } @@ -69,7 +68,6 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id) .params_loc_id = params_node_id, .param_patterns_id = *param_patterns_id, .call_params_id = call_params_id, - .return_slot_pattern_id = return_slot_pattern_id, .pattern_block_id = pattern_block_id, }; } diff --git a/toolchain/check/name_component.h b/toolchain/check/name_component.h index 1cce330872b9..0e017751d814 100644 --- a/toolchain/check/name_component.h +++ b/toolchain/check/name_component.h @@ -36,23 +36,16 @@ struct NameComponent { // The `Call` parameters of the entity, if it's a function (see the // corresponding member of SemIR::EntityWithParamsBase). - // TODO: This is only used for function declarations. Should it go somewhere - // else? SemIR::InstBlockId call_params_id; - // The return slot. - // TODO: This is only used for function declarations. Should it go - // somewhere else? - SemIR::InstId return_slot_pattern_id; - // The pattern block. SemIR::InstBlockId pattern_block_id; }; // Pops a name component from the node stack (and pattern block stack, if it has // parameters). -auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id = - SemIR::InstId::None) +auto PopNameComponent(Context& context, SemIR::InstBlockId return_patterns_id = + SemIR::InstBlockId::None) -> NameComponent; // Equivalent to PopNameComponent, but also diagnoses if the name component has diff --git a/toolchain/check/node_stack.h b/toolchain/check/node_stack.h index e1659c14311a..f440a9ebd31c 100644 --- a/toolchain/check/node_stack.h +++ b/toolchain/check/node_stack.h @@ -415,7 +415,6 @@ class NodeStack { case Parse::NodeKind::FieldNameAndType: case Parse::NodeKind::IfExprThen: case Parse::NodeKind::RequireIntroducer: - case Parse::NodeKind::ReturnType: case Parse::NodeKind::ShortCircuitOperandAnd: case Parse::NodeKind::ShortCircuitOperandOr: case Parse::NodeKind::StructLiteralField: @@ -447,6 +446,8 @@ class NodeStack { case Parse::NodeKind::DefaultLibrary: case Parse::NodeKind::LibraryName: return Id::KindFor(); + case Parse::NodeKind::ReturnType: + return Id::KindFor(); case Parse::NodeKind::AssociatedConstantInitializer: case Parse::NodeKind::AssociatedConstantIntroducer: case Parse::NodeKind::BuiltinName: diff --git a/toolchain/check/pattern_match.cpp b/toolchain/check/pattern_match.cpp index 859b6f432aa7..662426a09eeb 100644 --- a/toolchain/check/pattern_match.cpp +++ b/toolchain/check/pattern_match.cpp @@ -603,9 +603,9 @@ auto MatchContext::EmitPatternMatch(Context& context, auto CalleePatternMatch(Context& context, SemIR::InstBlockId implicit_param_patterns_id, SemIR::InstBlockId param_patterns_id, - SemIR::InstId return_slot_pattern_id) + SemIR::InstBlockId return_patterns_id) -> SemIR::InstBlockId { - if (!return_slot_pattern_id.has_value() && !param_patterns_id.has_value() && + if (!return_patterns_id.has_value() && !param_patterns_id.has_value() && !implicit_param_patterns_id.has_value()) { return SemIR::InstBlockId::None; } @@ -614,9 +614,10 @@ auto CalleePatternMatch(Context& context, // We add work to the stack in reverse so that the results will be produced // in the original order. - if (return_slot_pattern_id.has_value()) { - match.AddWork({.pattern_id = return_slot_pattern_id, - .scrutinee_id = SemIR::InstId::None}); + for (auto return_pattern_id : + context.inst_blocks().GetOrEmpty(return_patterns_id)) { + match.AddWork( + {.pattern_id = return_pattern_id, .scrutinee_id = SemIR::InstId::None}); } if (param_patterns_id.has_value()) { @@ -641,18 +642,20 @@ auto CalleePatternMatch(Context& context, auto CallerPatternMatch(Context& context, SemIR::SpecificId specific_id, SemIR::InstId self_pattern_id, SemIR::InstBlockId param_patterns_id, - SemIR::InstId return_slot_pattern_id, + SemIR::InstBlockId return_patterns_id, SemIR::InstId self_arg_id, llvm::ArrayRef arg_refs, SemIR::InstId return_slot_arg_id) -> SemIR::InstBlockId { MatchContext match(MatchKind::Caller, specific_id); + auto return_patterns = context.inst_blocks().GetOrEmpty(return_patterns_id); // Track the return storage, if present. if (return_slot_arg_id.has_value()) { - CARBON_CHECK(return_slot_pattern_id.has_value()); - match.AddWork({.pattern_id = return_slot_pattern_id, - .scrutinee_id = return_slot_arg_id}); + CARBON_CHECK(return_patterns.size() == 1, + "TODO: implement support for multiple return patterns"); + match.AddWork( + {.pattern_id = return_patterns[0], .scrutinee_id = return_slot_arg_id}); } // Check type conversions per-element. diff --git a/toolchain/check/pattern_match.h b/toolchain/check/pattern_match.h index 8ee645570de8..e18fb3188ff9 100644 --- a/toolchain/check/pattern_match.h +++ b/toolchain/check/pattern_match.h @@ -19,8 +19,8 @@ namespace Carbon::Check { // as a descendant are matched by the caller. // Emits the pattern-match IR for the declaration of a parameterized entity with -// the given implicit and explicit parameter patterns, and the given return slot -// pattern (any of which may be `None` if not applicable). This IR performs the +// the given implicit and explicit parameter patterns, and the given return +// patterns (any of which may be `None` if not applicable). This IR performs the // callee side of pattern matching, starting at the `ParamPattern` insts, and // matching them against the corresponding `Call` parameters (see // entity_with_params_base.h for the definition of that term). @@ -29,7 +29,7 @@ namespace Carbon::Check { auto CalleePatternMatch(Context& context, SemIR::InstBlockId implicit_param_patterns_id, SemIR::InstBlockId param_patterns_id, - SemIR::InstId return_slot_pattern_id) + SemIR::InstBlockId return_patterns_id) -> SemIR::InstBlockId; // Emits the pattern-match IR for matching the given arguments with the given @@ -38,7 +38,7 @@ auto CalleePatternMatch(Context& context, auto CallerPatternMatch(Context& context, SemIR::SpecificId specific_id, SemIR::InstId self_pattern_id, SemIR::InstBlockId param_patterns_id, - SemIR::InstId return_slot_pattern_id, + SemIR::InstBlockId return_patterns_id, SemIR::InstId self_arg_id, llvm::ArrayRef arg_refs, SemIR::InstId return_slot_arg_id) -> SemIR::InstBlockId; diff --git a/toolchain/check/return.cpp b/toolchain/check/return.cpp index fd8abc7f1d06..7571c3e55f73 100644 --- a/toolchain/check/return.cpp +++ b/toolchain/check/return.cpp @@ -48,18 +48,12 @@ static auto NoteNoReturnTypeProvided(DiagnosticBuilder& diag, // Produces a note describing the return type of the given function, which // must be a function whose definition is currently being checked. -static auto NoteReturnType(Context& context, DiagnosticBuilder& diag, +static auto NoteReturnType(DiagnosticBuilder& diag, const SemIR::Function& function) { - auto out_param_pattern = context.insts().GetAs( - function.return_slot_pattern_id); - auto return_type_inst_id = - context.insts() - .GetAs(out_param_pattern.subpattern_id) - .type_inst_id; CARBON_DIAGNOSTIC(ReturnTypeHereNote, Note, "return type of function is {0}", InstIdAsType); - diag.Note(function.return_slot_pattern_id, ReturnTypeHereNote, - return_type_inst_id); + diag.Note(function.return_type_inst_id, ReturnTypeHereNote, + function.return_type_inst_id); } // Produces a note pointing at the currently in scope `returned var`. @@ -99,7 +93,7 @@ auto RegisterReturnedVar(Context& context, Parse::NodeId returned_node, SemIR::TypeId); auto diag = context.emitter().Build(type_node, ReturnedVarWrongType, type_id); - NoteReturnType(context, diag, function); + NoteReturnType(diag, function); diag.Emit(); } @@ -122,7 +116,7 @@ auto BuildReturnWithNoExpr(Context& context, SemIR::LocId loc_id) -> void { CARBON_DIAGNOSTIC(ReturnStatementMissingExpr, Error, "missing return value"); auto diag = context.emitter().Build(loc_id, ReturnStatementMissingExpr); - NoteReturnType(context, diag, function); + NoteReturnType(diag, function); diag.Emit(); } diff --git a/toolchain/check/testdata/alias/preserve_in_type_printing.carbon b/toolchain/check/testdata/alias/preserve_in_type_printing.carbon index 6347f07e7970..1e9b5cc37d82 100644 --- a/toolchain/check/testdata/alias/preserve_in_type_printing.carbon +++ b/toolchain/check/testdata/alias/preserve_in_type_printing.carbon @@ -22,32 +22,32 @@ alias A = C; // CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+7]]:15: error: missing return value [ReturnStatementMissingExpr] // CHECK:STDERR: fn F() -> A { return; } // CHECK:STDERR: ^~~~~~~ -// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:8: note: return type of function is `A` [ReturnTypeHereNote] +// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:11: note: return type of function is `A` [ReturnTypeHereNote] // CHECK:STDERR: fn F() -> A { return; } -// CHECK:STDERR: ^~~~ +// CHECK:STDERR: ^ // CHECK:STDERR: fn F() -> A { return; } // CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+7]]:16: error: missing return value [ReturnStatementMissingExpr] // CHECK:STDERR: fn G() -> A* { return; } // CHECK:STDERR: ^~~~~~~ -// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:8: note: return type of function is `A*` [ReturnTypeHereNote] +// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:11: note: return type of function is `A*` [ReturnTypeHereNote] // CHECK:STDERR: fn G() -> A* { return; } -// CHECK:STDERR: ^~~~~ +// CHECK:STDERR: ^~ // CHECK:STDERR: fn G() -> A* { return; } // CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+7]]:22: error: missing return value [ReturnStatementMissingExpr] // CHECK:STDERR: fn H() -> const A* { return; } // CHECK:STDERR: ^~~~~~~ -// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:8: note: return type of function is `const A*` [ReturnTypeHereNote] +// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:11: note: return type of function is `const A*` [ReturnTypeHereNote] // CHECK:STDERR: fn H() -> const A* { return; } -// CHECK:STDERR: ^~~~~~~~~~~ +// CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: fn H() -> const A* { return; } // CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+7]]:26: error: missing return value [ReturnStatementMissingExpr] // CHECK:STDERR: fn I() -> array(A, 42) { return; } // CHECK:STDERR: ^~~~~~~ -// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:8: note: return type of function is `array(A, 42)` [ReturnTypeHereNote] +// CHECK:STDERR: fail_alias_nested_in_type.carbon:[[@LINE+4]]:11: note: return type of function is `array(A, 42)` [ReturnTypeHereNote] // CHECK:STDERR: fn I() -> array(A, 42) { return; } -// CHECK:STDERR: ^~~~~~~~~~~~~~~ +// CHECK:STDERR: ^~~~~~~~~~~~ // CHECK:STDERR: fn I() -> array(A, 42) { return; } diff --git a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon index 03ba3bd88587..e4b16c814cbf 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon @@ -63,7 +63,7 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: cpp_global_vars: // CHECK:STDOUT: cpp_global_var60000000: {key: {entity_name_id: entity_name60000003}, clang_decl_id: clang_decl_id60000007} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block60000006, body: [inst_block60000009]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block60000006, return_patterns_id: inst_block_empty, body: [inst_block60000009]} // CHECK:STDOUT: function60000001: {name: name3, parent_scope: name_scope60000001, call_params_id: inst_block_empty} // CHECK:STDOUT: function60000002: {name: name6, parent_scope: name_scope60000001, call_params_id: inst_block_empty} // CHECK:STDOUT: function60000003: {name: name3, parent_scope: name_scope60000001, call_params_id: inst_block6000000D} diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon index 4f19e5dd2338..7b70fb812b4c 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon @@ -40,7 +40,7 @@ fn B() { // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block60000005]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, return_patterns_id: inst_block_empty, body: [inst_block60000005]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -103,8 +103,8 @@ fn B() { // CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope50000001, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function50000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block50000005]} -// CHECK:STDOUT: function50000001: {name: name1, parent_scope: name_scope50000001} +// CHECK:STDOUT: function50000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, return_patterns_id: inst_block_empty, body: [inst_block50000005]} +// CHECK:STDOUT: function50000001: {name: name1, parent_scope: name_scope50000001, return_patterns_id: inst_block_empty} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon index 86a623599d5a..1183277750c3 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon @@ -40,7 +40,7 @@ fn B() { // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block60000005]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, return_patterns_id: inst_block_empty, body: [inst_block60000005]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -122,8 +122,8 @@ fn B() { // CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope50000001, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function50000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block50000005]} -// CHECK:STDOUT: function50000001: {name: name1, parent_scope: name_scope50000001} +// CHECK:STDOUT: function50000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, return_patterns_id: inst_block_empty, body: [inst_block50000005]} +// CHECK:STDOUT: function50000001: {name: name1, parent_scope: name_scope50000001, return_patterns_id: inst_block_empty} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} 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 b5f97b11be11..98fa909526f5 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -39,200 +39,205 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_ir_inst8: {ir_id: import_ir60000004, inst_id: inst48000023} // CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir60000004, inst_id: inst4800001C} // CHECK:STDOUT: import_ir_instA: {ir_id: import_ir60000004, inst_id: inst4800001E} -// CHECK:STDOUT: import_ir_instB: {ir_id: import_ir60000004, inst_id: inst48000011} -// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000015} -// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000018} -// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst4800001D} -// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst48000061} -// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst4800005F} -// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst48000075} -// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst48000060} -// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000075} -// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst48000070} -// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000071} -// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst4800006C} -// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst4800006E} -// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst48000050} -// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst48000067} -// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000068} -// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000069} -// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst4800006D} -// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst4800007D} -// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst48000085} -// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800008C} -// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst48000090} -// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000091} -// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000096} -// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000054} -// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst4800005A} -// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst4800005D} -// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst48000050} -// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst48000052} -// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000058} -// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst4800005C} -// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000063} -// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst48000078} -// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000079} -// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst480000AB} -// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst480000A9} -// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst480000A7} -// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst480000A8} -// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst480000C3} -// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst480000C1} -// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000BF} -// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000C0} -// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000DB} -// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000D9} -// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000D7} -// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D8} -// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000F3} -// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000F1} -// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000EF} -// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000F0} -// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst48000110} -// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst4800010E} -// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000121} -// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst4800010F} -// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst48000108} -// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst4800010A} -// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst4800010D} -// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst48000105} -// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst48000107} -// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst4800010C} -// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst48000112} -// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst48000121} -// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst4800011C} -// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst4800011D} -// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst48000118} -// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst4800011A} -// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000105} -// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst48000114} -// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst48000115} -// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000119} -// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst48000124} -// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst48000125} -// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst48000128} -// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst4800012E} -// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst4800012C} -// CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir60000004, inst_id: inst(TypeType)} -// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800012B} -// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst48000144} -// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst48000142} -// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst48000140} -// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst48000141} -// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst48000176} -// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000174} -// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst4800018E} -// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst48000175} -// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst4800018E} -// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst48000189} -// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst4800018A} -// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000185} -// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst48000187} -// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000157} -// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst4800015C} -// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst4800017E} -// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst4800017F} -// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst48000180} -// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst48000181} -// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst48000182} -// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000186} -// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst48000197} -// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst4800019F} -// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst480001A3} -// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst480001A5} -// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst480001A6} -// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst480001A9} -// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst480001B5} -// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst480001BA} -// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst480001BE} -// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst480001BF} -// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst480001C4} -// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst4800015F} -// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst48000159} -// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst4800016F} -// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst48000171} -// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst48000157} -// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst4800015C} -// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst48000158} -// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst4800015E} -// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst48000165} -// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst48000168} -// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst4800016C} -// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst48000170} -// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst48000178} -// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst48000191} -// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst48000192} -// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst480001FF} -// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst480001FD} -// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst4800021B} -// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst480001FE} -// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst4800021B} -// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst48000216} -// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst48000217} -// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst48000212} -// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst48000214} -// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst480001D6} -// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst480001DB} -// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst480001E0} -// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst48000209} -// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst4800020A} -// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst4800020B} -// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst4800020C} -// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst4800020D} -// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst4800020E} -// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst4800020F} -// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst48000213} -// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000224} -// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800022B} -// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst4800022F} -// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst48000231} -// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000232} -// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000235} -// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst4800023F} -// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst48000243} -// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst48000245} -// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst48000246} -// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst48000249} -// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000255} -// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst4800025A} -// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst4800025E} -// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800025F} -// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst48000264} -// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst480001E3} -// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst480001DD} -// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst480001D8} -// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst480001F7} -// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst480001F9} -// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst480001D6} -// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst480001DB} -// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst480001E0} -// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst480001D7} -// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst480001DC} -// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst480001E2} -// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst480001EA} -// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst480001ED} -// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst480001F0} -// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst480001F4} -// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst480001F8} -// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst48000201} -// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst4800021E} -// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst4800021F} +// CHECK:STDOUT: import_ir_instB: {ir_id: import_ir60000004, inst_id: inst48000021} +// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000011} +// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000015} +// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst48000018} +// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst4800001D} +// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst48000061} +// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst4800005F} +// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst48000075} +// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000060} +// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst48000075} +// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000070} +// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst48000071} +// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst4800006C} +// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst4800006E} +// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst4800006F} +// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000050} +// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000067} +// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst48000068} +// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000069} +// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst4800006D} +// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800007D} +// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst48000085} +// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst4800008C} +// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000090} +// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000091} +// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst48000096} +// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst48000054} +// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst4800005A} +// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800005D} +// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000050} +// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst48000052} +// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000058} +// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst4800005C} +// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000063} +// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst48000078} +// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst48000079} +// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst480000AB} +// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst480000A9} +// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst480000A7} +// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst480000A8} +// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000C3} +// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000C1} +// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000BF} +// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000C0} +// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000DB} +// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D9} +// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000D7} +// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000D8} +// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000F3} +// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000F1} +// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst480000EF} +// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst480000F0} +// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000110} +// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst4800010E} +// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst48000121} +// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst4800010F} +// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst48000108} +// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst4800010A} +// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst4800010D} +// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst48000105} +// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst48000107} +// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst4800010C} +// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst48000112} +// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst48000121} +// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst4800011C} +// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst4800011D} +// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000118} +// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst4800011A} +// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst4800011B} +// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000105} +// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst48000114} +// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst48000115} +// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst48000119} +// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst48000124} +// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst48000125} +// CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir60000004, inst_id: inst48000128} +// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800012E} +// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst4800012C} +// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst(TypeType)} +// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst4800012B} +// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst48000144} +// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst48000142} +// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000140} +// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst48000141} +// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst48000176} +// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst48000174} +// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst4800018E} +// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst48000175} +// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst4800018E} +// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst48000189} +// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst4800018A} +// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst48000185} +// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst48000187} +// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst48000188} +// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst48000157} +// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst4800015C} +// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst4800017E} +// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst4800017F} +// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst48000180} +// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst48000181} +// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst48000182} +// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst48000186} +// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst48000197} +// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst4800019F} +// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst480001A3} +// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst480001A5} +// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst480001A6} +// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst480001A9} +// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst480001B5} +// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst480001BA} +// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst480001BE} +// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst480001BF} +// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst480001C4} +// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst4800015F} +// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst48000159} +// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst4800016F} +// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst48000171} +// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst48000157} +// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst4800015C} +// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst48000158} +// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst4800015E} +// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst48000165} +// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst48000168} +// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst4800016C} +// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst48000170} +// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst48000178} +// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst48000191} +// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst48000192} +// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst480001FF} +// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst480001FD} +// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst4800021B} +// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst480001FE} +// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst4800021B} +// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst48000216} +// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst48000217} +// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst48000212} +// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst48000214} +// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst48000215} +// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst480001D6} +// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst480001DB} +// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst480001E0} +// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst48000209} +// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst4800020A} +// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst4800020B} +// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst4800020C} +// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800020D} +// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst4800020E} +// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst4800020F} +// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000213} +// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000224} +// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst4800022B} +// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst4800022F} +// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst48000231} +// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst48000232} +// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst48000235} +// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst4800023F} +// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst48000243} +// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst48000245} +// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst48000246} +// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst48000249} +// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst48000255} +// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst4800025A} +// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst4800025E} +// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst4800025F} +// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst48000264} +// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst480001E3} +// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst480001DD} +// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst480001D8} +// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst480001F7} +// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst480001F9} +// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst480001D6} +// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst480001DB} +// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst480001E0} +// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst480001D7} +// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst480001DC} +// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst480001E2} +// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst480001EA} +// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst480001ED} +// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst480001F0} +// CHECK:STDOUT: import_ir_instBE: {ir_id: import_ir60000004, inst_id: inst480001F4} +// CHECK:STDOUT: import_ir_instBF: {ir_id: import_ir60000004, inst_id: inst480001F8} +// CHECK:STDOUT: import_ir_instC0: {ir_id: import_ir60000004, inst_id: inst48000201} +// CHECK:STDOUT: import_ir_instC1: {ir_id: import_ir60000004, inst_id: inst4800021E} +// CHECK:STDOUT: import_ir_instC2: {ir_id: import_ir60000004, inst_id: inst4800021F} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: // CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst60000010, name0: inst60000038}} // CHECK:STDOUT: name_scope60000001: {inst: inst60000010, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst60000048}} // CHECK:STDOUT: name_scope60000002: {inst: inst60000049, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {name(SelfType): inst6000004C, name4: inst6000004D}} -// CHECK:STDOUT: name_scope60000003: {inst: inst60000061, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000004: {inst: inst6000008E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000005: {inst: inst60000092, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000006: {inst: inst60000096, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000007: {inst: inst6000009A, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000008: {inst: inst6000009E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000009: {inst: inst600000B8, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000A: {inst: inst600000BC, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000B: {inst: inst600000C0, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000C: {inst: inst600000FB, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000003: {inst: inst60000062, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000004: {inst: inst60000090, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000005: {inst: inst60000094, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000006: {inst: inst60000098, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000007: {inst: inst6000009C, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000008: {inst: inst600000A0, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000009: {inst: inst600000BB, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000A: {inst: inst600000BF, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000B: {inst: inst600000C3, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000C: {inst: inst600000FF, 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} @@ -245,10 +250,10 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name60000008: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name60000009: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000000A: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000000B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000000B: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000000C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000000D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} -// CHECK:STDOUT: entity_name6000000E: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000000D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000000E: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name6000000F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000010: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000011: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} @@ -258,91 +263,92 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name60000015: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000016: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name60000017: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000018: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} -// CHECK:STDOUT: entity_name60000019: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000001A: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000018: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000019: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} +// CHECK:STDOUT: entity_name6000001A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000001B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000001C: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} -// CHECK:STDOUT: entity_name6000001D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name6000001C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name6000001D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name6000001E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000001F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000001F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name60000020: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000021: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000022: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000023: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000024: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000025: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000026: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000027: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000028: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000029: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name60000021: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000022: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000023: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000024: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000025: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000026: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000027: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000028: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000029: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} // CHECK:STDOUT: entity_name6000002A: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000002B: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} -// CHECK:STDOUT: entity_name6000002C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000002B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000002C: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name6000002D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000002E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name6000002E: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} // CHECK:STDOUT: entity_name6000002F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000030: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000030: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} // CHECK:STDOUT: entity_name60000031: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000032: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000033: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000034: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000035: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000036: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name60000037: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name60000038: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name60000039: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000003A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} -// CHECK:STDOUT: entity_name6000003B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} -// CHECK:STDOUT: entity_name6000003C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} -// CHECK:STDOUT: entity_name6000003D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000032: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000033: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name60000034: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000035: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000036: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name60000037: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name60000038: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name60000039: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000003A: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// CHECK:STDOUT: entity_name6000003B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} +// CHECK:STDOUT: entity_name6000003C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} +// CHECK:STDOUT: entity_name6000003D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0} +// 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_block6000000F, return_slot_pattern: inst60000033, body: [inst_block60000016]} -// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_slot_pattern: inst60000058} -// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_slot_pattern: inst6000006D} -// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_slot_pattern: inst600000AD} -// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_slot_pattern: inst600000CE} -// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_slot_pattern: inst60000109} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block60000010, return_type_inst_id: inst6000002E, return_patterns_id: inst_block6000000F, body: [inst_block60000017]} +// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_type_inst_id: inst6000005B, return_patterns_id: inst_block6000001B} +// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_type_inst_id: inst60000071, return_patterns_id: inst_block60000025} +// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_type_inst_id: inst600000B2, return_patterns_id: inst_block60000039} +// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_type_inst_id: inst600000D4, return_patterns_id: inst_block60000046} +// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_type_inst_id: inst60000110, return_patterns_id: inst_block6000005F} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: -// CHECK:STDOUT: generic60000000: {decl: inst60000038, bindings: inst_block60000012} -// CHECK:STDOUT: generic60000001: {decl: inst60000052, bindings: inst_block6000001A} -// CHECK:STDOUT: generic60000002: {decl: inst60000061, bindings: inst_block6000002A} -// CHECK:STDOUT: generic60000003: {decl: inst60000068, bindings: inst_block60000023} -// CHECK:STDOUT: generic60000004: {decl: inst6000009E, bindings: inst_block60000032} -// CHECK:STDOUT: generic60000005: {decl: inst600000A9, bindings: inst_block60000036} -// CHECK:STDOUT: generic60000006: {decl: inst600000C0, bindings: inst_block6000004C} -// CHECK:STDOUT: generic60000007: {decl: inst600000C7, bindings: inst_block60000042} -// CHECK:STDOUT: generic60000008: {decl: inst600000FB, bindings: inst_block60000065} -// CHECK:STDOUT: generic60000009: {decl: inst60000102, bindings: inst_block6000005A} +// CHECK:STDOUT: generic60000000: {decl: inst60000038, bindings: inst_block60000013} +// CHECK:STDOUT: generic60000001: {decl: inst60000052, bindings: inst_block6000001C} +// CHECK:STDOUT: generic60000002: {decl: inst60000062, bindings: inst_block6000002D} +// CHECK:STDOUT: generic60000003: {decl: inst60000069, bindings: inst_block60000026} +// CHECK:STDOUT: generic60000004: {decl: inst600000A0, bindings: inst_block60000035} +// CHECK:STDOUT: generic60000005: {decl: inst600000AB, bindings: inst_block6000003A} +// CHECK:STDOUT: generic60000006: {decl: inst600000C3, bindings: inst_block60000051} +// CHECK:STDOUT: generic60000007: {decl: inst600000CA, bindings: inst_block60000047} +// CHECK:STDOUT: generic60000008: {decl: inst600000FF, bindings: inst_block6000006B} +// CHECK:STDOUT: generic60000009: {decl: inst60000106, bindings: inst_block60000060} // CHECK:STDOUT: specifics: -// CHECK:STDOUT: specific60000000: {generic: generic60000000, args: inst_block60000013} -// CHECK:STDOUT: specific60000001: {generic: generic60000001, args: inst_block6000001C} -// CHECK:STDOUT: specific60000002: {generic: generic60000002, args: inst_block6000001F} -// CHECK:STDOUT: specific60000003: {generic: generic60000001, args: inst_block6000001F} -// CHECK:STDOUT: specific60000004: {generic: generic60000003, args: inst_block6000001F} -// CHECK:STDOUT: specific60000005: {generic: generic60000001, args: inst_block60000026} -// CHECK:STDOUT: specific60000006: {generic: generic60000002, args: inst_block6000002B} -// CHECK:STDOUT: specific60000007: {generic: generic60000004, args: inst_block60000013} -// CHECK:STDOUT: specific60000008: {generic: generic60000004, args: inst_block60000033} -// CHECK:STDOUT: specific60000009: {generic: generic60000005, args: inst_block60000013} -// CHECK:STDOUT: specific6000000A: {generic: generic60000006, args: inst_block6000003D} -// CHECK:STDOUT: specific6000000B: {generic: generic60000001, args: inst_block60000045} -// CHECK:STDOUT: specific6000000C: {generic: generic60000007, args: inst_block6000003D} -// CHECK:STDOUT: specific6000000D: {generic: generic60000001, args: inst_block60000047} -// CHECK:STDOUT: specific6000000E: {generic: generic60000001, args: inst_block60000048} -// CHECK:STDOUT: specific6000000F: {generic: generic60000006, args: inst_block6000004D} -// CHECK:STDOUT: specific60000010: {generic: generic60000008, args: inst_block60000055} -// CHECK:STDOUT: specific60000011: {generic: generic60000001, args: inst_block6000005D} -// CHECK:STDOUT: specific60000012: {generic: generic60000009, args: inst_block60000055} -// CHECK:STDOUT: specific60000013: {generic: generic60000001, args: inst_block6000005F} -// CHECK:STDOUT: specific60000014: {generic: generic60000001, args: inst_block60000060} -// CHECK:STDOUT: specific60000015: {generic: generic60000001, args: inst_block60000061} -// CHECK:STDOUT: specific60000016: {generic: generic60000008, args: inst_block60000066} -// CHECK:STDOUT: specific60000017: {generic: generic60000004, args: inst_block6000006D} -// CHECK:STDOUT: specific60000018: {generic: generic60000001, args: inst_block60000070} -// CHECK:STDOUT: specific60000019: {generic: generic60000001, args: inst_block60000072} +// CHECK:STDOUT: specific60000000: {generic: generic60000000, args: inst_block60000014} +// CHECK:STDOUT: specific60000001: {generic: generic60000001, args: inst_block6000001E} +// CHECK:STDOUT: specific60000002: {generic: generic60000002, args: inst_block60000021} +// CHECK:STDOUT: specific60000003: {generic: generic60000001, args: inst_block60000021} +// CHECK:STDOUT: specific60000004: {generic: generic60000003, args: inst_block60000021} +// CHECK:STDOUT: specific60000005: {generic: generic60000001, args: inst_block60000029} +// CHECK:STDOUT: specific60000006: {generic: generic60000002, args: inst_block6000002E} +// CHECK:STDOUT: specific60000007: {generic: generic60000004, args: inst_block60000014} +// CHECK:STDOUT: specific60000008: {generic: generic60000004, args: inst_block60000036} +// CHECK:STDOUT: specific60000009: {generic: generic60000005, args: inst_block60000014} +// CHECK:STDOUT: specific6000000A: {generic: generic60000006, args: inst_block60000041} +// CHECK:STDOUT: specific6000000B: {generic: generic60000001, args: inst_block6000004A} +// CHECK:STDOUT: specific6000000C: {generic: generic60000007, args: inst_block60000041} +// CHECK:STDOUT: specific6000000D: {generic: generic60000001, args: inst_block6000004C} +// CHECK:STDOUT: specific6000000E: {generic: generic60000001, args: inst_block6000004D} +// CHECK:STDOUT: specific6000000F: {generic: generic60000006, args: inst_block60000052} +// CHECK:STDOUT: specific60000010: {generic: generic60000008, args: inst_block6000005A} +// CHECK:STDOUT: specific60000011: {generic: generic60000001, args: inst_block60000063} +// CHECK:STDOUT: specific60000012: {generic: generic60000009, args: inst_block6000005A} +// CHECK:STDOUT: specific60000013: {generic: generic60000001, args: inst_block60000065} +// CHECK:STDOUT: specific60000014: {generic: generic60000001, args: inst_block60000066} +// CHECK:STDOUT: specific60000015: {generic: generic60000001, args: inst_block60000067} +// CHECK:STDOUT: specific60000016: {generic: generic60000008, args: inst_block6000006C} +// CHECK:STDOUT: specific60000017: {generic: generic60000004, args: inst_block60000073} +// CHECK:STDOUT: specific60000018: {generic: generic60000001, args: inst_block60000076} +// CHECK:STDOUT: specific60000019: {generic: generic60000001, args: inst_block60000078} // CHECK:STDOUT: struct_type_fields: // CHECK:STDOUT: struct_type_fields_empty: {} // CHECK:STDOUT: types: @@ -380,9 +386,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_constant6000010B)': +// CHECK:STDOUT: 'type(symbolic_constant60000110)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} -// CHECK:STDOUT: 'type(symbolic_constant6000010E)': +// CHECK:STDOUT: 'type(symbolic_constant60000113)': // CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} // CHECK:STDOUT: 'type(inst(BoundMethodType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(BoundMethodType))} @@ -429,7 +435,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000035: {kind: SpliceBlock, arg0: inst_block60000006, arg1: inst6000001A, type: type(TypeType)} // CHECK:STDOUT: inst60000036: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constantA)} // CHECK:STDOUT: inst60000037: {kind: ReturnSlot, arg0: inst6000002D, arg1: inst60000036, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000038: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000011, type: type(inst60000039)} +// CHECK:STDOUT: inst60000038: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000012, type: type(inst60000039)} // CHECK:STDOUT: inst60000039: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst6000003A: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000039)} // CHECK:STDOUT: inst6000003B: {kind: PointerType, arg0: inst6000002D, type: type(TypeType)} @@ -441,7 +447,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000041: {kind: RequireCompleteType, arg0: inst6000001C, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000042: {kind: NameRef, arg0: name2, arg1: inst6000001D, type: type(symbolic_constant4)} // CHECK:STDOUT: inst60000043: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000024)} -// CHECK:STDOUT: inst60000044: {kind: TupleLiteral, arg0: inst_block60000017, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000044: {kind: TupleLiteral, arg0: inst_block60000018, type: type(symbolic_constantA)} // CHECK:STDOUT: inst60000045: {kind: RequireCompleteType, arg0: inst6000002D, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000046: {kind: TupleAccess, arg0: inst60000037, arg1: element0, type: type(symbolic_constant4)} // CHECK:STDOUT: inst60000047: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} @@ -464,262 +470,267 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000058: {kind: OutParamPattern, arg0: inst60000057, arg1: call_param1, type: type(symbolic_constant60000015)} // CHECK:STDOUT: inst60000059: {kind: ValueBindingPattern, arg0: entity_name60000008, type: type(symbolic_constant60000015)} // CHECK:STDOUT: inst6000005A: {kind: ValueParamPattern, arg0: inst60000059, arg1: call_param0, type: type(symbolic_constant60000015)} -// CHECK:STDOUT: inst6000005B: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000005C: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000005D: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000005C, type: type(TypeType)} -// CHECK:STDOUT: inst6000005E: {kind: PatternType, arg0: inst6000005D, type: type(TypeType)} -// CHECK:STDOUT: inst6000005F: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000060: {kind: ImportRefUnloaded, arg0: import_ir_instF, arg1: entity_name} -// CHECK:STDOUT: inst60000061: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000062: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000063: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000062, type: type(TypeType)} -// CHECK:STDOUT: inst60000064: {kind: ConstType, arg0: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst60000065: {kind: ImportRefUnloaded, arg0: import_ir_inst11, arg1: entity_name} -// CHECK:STDOUT: inst60000066: {kind: ImplWitnessTable, arg0: inst_block6000001E, arg1: impl60000000} -// CHECK:STDOUT: inst60000067: {kind: ImplWitness, arg0: inst60000066, arg1: specific60000002, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000068: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000021)} -// CHECK:STDOUT: inst60000069: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} -// CHECK:STDOUT: inst6000006A: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000021)} -// CHECK:STDOUT: inst6000006B: {kind: PatternType, arg0: inst60000064, type: type(TypeType)} -// CHECK:STDOUT: inst6000006C: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000026)} -// CHECK:STDOUT: inst6000006D: {kind: OutParamPattern, arg0: inst6000006C, arg1: call_param1, type: type(symbolic_constant60000026)} -// CHECK:STDOUT: inst6000006E: {kind: ValueBindingPattern, arg0: entity_name6000000D, type: type(symbolic_constant60000026)} -// CHECK:STDOUT: inst6000006F: {kind: ValueParamPattern, arg0: inst6000006E, arg1: call_param0, type: type(symbolic_constant60000026)} -// CHECK:STDOUT: inst60000070: {kind: ImportRefLoaded, arg0: import_ir_inst18, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000071: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000072: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000071, type: type(TypeType)} -// CHECK:STDOUT: inst60000073: {kind: ConstType, arg0: inst60000072, type: type(TypeType)} -// CHECK:STDOUT: inst60000074: {kind: PatternType, arg0: inst60000073, type: type(TypeType)} -// CHECK:STDOUT: inst60000075: {kind: LookupImplWitness, arg0: inst60000062, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000076: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000062, type: type(TypeType)} -// CHECK:STDOUT: inst60000077: {kind: ImplWitnessAccess, arg0: inst60000075, arg1: element0, type: type(symbolic_constant60000030)} -// CHECK:STDOUT: inst60000078: {kind: SpecificImplFunction, arg0: inst60000077, arg1: specific60000003, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000079: {kind: PatternType, arg0: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst6000007A: {kind: RequireCompleteType, arg0: inst60000063, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007B: {kind: RequireCompleteType, arg0: inst60000064, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007C: {kind: RequireCompleteType, arg0: inst60000073, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007D: {kind: RequireCompleteType, arg0: inst60000072, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007E: {kind: LookupImplWitness, arg0: inst60000071, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000007F: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000071, type: type(TypeType)} -// CHECK:STDOUT: inst60000080: {kind: ImplWitnessAccess, arg0: inst6000007E, arg1: element0, type: type(symbolic_constant6000003F)} -// CHECK:STDOUT: inst60000081: {kind: SpecificImplFunction, arg0: inst60000080, arg1: specific60000005, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000082: {kind: PatternType, arg0: inst6000004A, type: type(TypeType)} -// CHECK:STDOUT: inst60000083: {kind: SymbolicBindingPattern, arg0: entity_name60000013, type: type(inst60000082)} -// CHECK:STDOUT: inst60000084: {kind: ImportRefLoaded, arg0: import_ir_inst24, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000085: {kind: ImportRefLoaded, arg0: import_ir_inst25, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000086: {kind: ImportRefLoaded, arg0: import_ir_inst26, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000087: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000088: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000087, type: type(TypeType)} -// CHECK:STDOUT: inst60000089: {kind: ConstType, arg0: inst60000088, type: type(TypeType)} -// CHECK:STDOUT: inst6000008A: {kind: ImplWitness, arg0: inst60000066, arg1: specific60000006, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000008B: {kind: FunctionType, arg0: function60000002, arg1: specific60000006, type: type(TypeType)} -// CHECK:STDOUT: inst6000008C: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000004A)} -// CHECK:STDOUT: inst6000008D: {kind: ImportRefUnloaded, arg0: import_ir_inst2D, arg1: entity_name} -// CHECK:STDOUT: inst6000008E: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000008F: {kind: ImportRefLoaded, arg0: import_ir_inst2F, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000090: {kind: ImportRefLoaded, arg0: import_ir_inst30, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000091: {kind: ImportRefUnloaded, arg0: import_ir_inst31, arg1: entity_name} -// CHECK:STDOUT: inst60000092: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000093: {kind: ImportRefLoaded, arg0: import_ir_inst33, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000094: {kind: ImportRefLoaded, arg0: import_ir_inst34, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000095: {kind: ImportRefUnloaded, arg0: import_ir_inst35, arg1: entity_name} -// CHECK:STDOUT: inst60000096: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000097: {kind: ImportRefLoaded, arg0: import_ir_inst37, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000098: {kind: ImportRefLoaded, arg0: import_ir_inst38, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000099: {kind: ImportRefUnloaded, arg0: import_ir_inst39, arg1: entity_name} -// CHECK:STDOUT: inst6000009A: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009B: {kind: ImportRefLoaded, arg0: import_ir_inst3B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009C: {kind: ImportRefLoaded, arg0: import_ir_inst3C, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009D: {kind: ImportRefLoaded, arg0: import_ir_inst3D, arg1: entity_name, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000009E: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009F: {kind: ImportRefUnloaded, arg0: import_ir_inst3F, arg1: entity_name} -// CHECK:STDOUT: inst600000A0: {kind: ImplWitnessTable, arg0: inst_block6000002F, arg1: impl60000005} -// CHECK:STDOUT: inst600000A1: {kind: ImplWitness, arg0: inst600000A0, arg1: specific60000007, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000A2: {kind: SymbolicBindingPattern, arg0: entity_name60000017, type: type(inst60000017)} -// CHECK:STDOUT: inst600000A3: {kind: ImportRefLoaded, arg0: import_ir_inst42, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A4: {kind: ImportRefLoaded, arg0: import_ir_inst43, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000005B: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000005C: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000005D: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000005E: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000005D, type: type(TypeType)} +// CHECK:STDOUT: inst6000005F: {kind: PatternType, arg0: inst6000005E, type: type(TypeType)} +// CHECK:STDOUT: inst60000060: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000061: {kind: ImportRefUnloaded, arg0: import_ir_inst10, arg1: entity_name} +// CHECK:STDOUT: inst60000062: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000063: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000064: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000063, type: type(TypeType)} +// CHECK:STDOUT: inst60000065: {kind: ConstType, arg0: inst60000064, type: type(TypeType)} +// CHECK:STDOUT: inst60000066: {kind: ImportRefUnloaded, arg0: import_ir_inst12, arg1: entity_name} +// CHECK:STDOUT: inst60000067: {kind: ImplWitnessTable, arg0: inst_block60000020, arg1: impl60000000} +// CHECK:STDOUT: inst60000068: {kind: ImplWitness, arg0: inst60000067, arg1: specific60000002, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000069: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000022)} +// CHECK:STDOUT: inst6000006A: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} +// CHECK:STDOUT: inst6000006B: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000022)} +// CHECK:STDOUT: inst6000006C: {kind: PatternType, arg0: inst60000065, type: type(TypeType)} +// CHECK:STDOUT: inst6000006D: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000027)} +// CHECK:STDOUT: inst6000006E: {kind: OutParamPattern, arg0: inst6000006D, arg1: call_param1, type: type(symbolic_constant60000027)} +// CHECK:STDOUT: inst6000006F: {kind: ValueBindingPattern, arg0: entity_name6000000E, type: type(symbolic_constant60000027)} +// CHECK:STDOUT: inst60000070: {kind: ValueParamPattern, arg0: inst6000006F, arg1: call_param0, type: type(symbolic_constant60000027)} +// CHECK:STDOUT: inst60000071: {kind: ImportRefLoaded, arg0: import_ir_inst19, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000072: {kind: ImportRefLoaded, arg0: import_ir_inst1A, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000073: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000074: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000073, type: type(TypeType)} +// CHECK:STDOUT: inst60000075: {kind: ConstType, arg0: inst60000074, type: type(TypeType)} +// CHECK:STDOUT: inst60000076: {kind: PatternType, arg0: inst60000075, type: type(TypeType)} +// CHECK:STDOUT: inst60000077: {kind: LookupImplWitness, arg0: inst60000063, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000078: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000063, type: type(TypeType)} +// CHECK:STDOUT: inst60000079: {kind: ImplWitnessAccess, arg0: inst60000077, arg1: element0, type: type(symbolic_constant60000032)} +// CHECK:STDOUT: inst6000007A: {kind: SpecificImplFunction, arg0: inst60000079, arg1: specific60000003, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000007B: {kind: PatternType, arg0: inst60000064, type: type(TypeType)} +// CHECK:STDOUT: inst6000007C: {kind: RequireCompleteType, arg0: inst60000064, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007D: {kind: RequireCompleteType, arg0: inst60000065, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007E: {kind: RequireCompleteType, arg0: inst60000075, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000007F: {kind: RequireCompleteType, arg0: inst60000074, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000080: {kind: LookupImplWitness, arg0: inst60000073, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000081: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000073, type: type(TypeType)} +// CHECK:STDOUT: inst60000082: {kind: ImplWitnessAccess, arg0: inst60000080, arg1: element0, type: type(symbolic_constant60000041)} +// CHECK:STDOUT: inst60000083: {kind: SpecificImplFunction, arg0: inst60000082, arg1: specific60000005, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000084: {kind: PatternType, arg0: inst6000004A, type: type(TypeType)} +// CHECK:STDOUT: inst60000085: {kind: SymbolicBindingPattern, arg0: entity_name60000014, type: type(inst60000084)} +// CHECK:STDOUT: inst60000086: {kind: ImportRefLoaded, arg0: import_ir_inst26, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000087: {kind: ImportRefLoaded, arg0: import_ir_inst27, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000088: {kind: ImportRefLoaded, arg0: import_ir_inst28, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000089: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000008A: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000089, type: type(TypeType)} +// CHECK:STDOUT: inst6000008B: {kind: ConstType, arg0: inst6000008A, type: type(TypeType)} +// CHECK:STDOUT: inst6000008C: {kind: ImplWitness, arg0: inst60000067, arg1: specific60000006, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000008D: {kind: FunctionType, arg0: function60000002, arg1: specific60000006, type: type(TypeType)} +// CHECK:STDOUT: inst6000008E: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000004C)} +// CHECK:STDOUT: inst6000008F: {kind: ImportRefUnloaded, arg0: import_ir_inst2F, arg1: entity_name} +// CHECK:STDOUT: inst60000090: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000091: {kind: ImportRefLoaded, arg0: import_ir_inst31, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000092: {kind: ImportRefLoaded, arg0: import_ir_inst32, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000093: {kind: ImportRefUnloaded, arg0: import_ir_inst33, arg1: entity_name} +// CHECK:STDOUT: inst60000094: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000095: {kind: ImportRefLoaded, arg0: import_ir_inst35, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000096: {kind: ImportRefLoaded, arg0: import_ir_inst36, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000097: {kind: ImportRefUnloaded, arg0: import_ir_inst37, arg1: entity_name} +// CHECK:STDOUT: inst60000098: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000099: {kind: ImportRefLoaded, arg0: import_ir_inst39, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009A: {kind: ImportRefLoaded, arg0: import_ir_inst3A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009B: {kind: ImportRefUnloaded, arg0: import_ir_inst3B, arg1: entity_name} +// CHECK:STDOUT: inst6000009C: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000009D: {kind: ImportRefLoaded, arg0: import_ir_inst3D, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009E: {kind: ImportRefLoaded, arg0: import_ir_inst3E, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009F: {kind: ImportRefLoaded, arg0: import_ir_inst3F, arg1: entity_name, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000A0: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000A1: {kind: ImportRefUnloaded, arg0: import_ir_inst41, arg1: entity_name} +// CHECK:STDOUT: inst600000A2: {kind: ImplWitnessTable, arg0: inst_block60000032, arg1: impl60000005} +// CHECK:STDOUT: inst600000A3: {kind: ImplWitness, arg0: inst600000A2, arg1: specific60000007, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000A4: {kind: SymbolicBindingPattern, arg0: entity_name60000018, type: type(inst60000017)} // CHECK:STDOUT: inst600000A5: {kind: ImportRefLoaded, arg0: import_ir_inst44, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A6: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000A7: {kind: PointerType, arg0: inst600000A6, type: type(TypeType)} -// CHECK:STDOUT: inst600000A8: {kind: ImplWitness, arg0: inst600000A0, arg1: specific60000008, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000A9: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000056)} -// CHECK:STDOUT: inst600000AA: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} -// CHECK:STDOUT: inst600000AB: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000056)} -// CHECK:STDOUT: inst600000AC: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000005A)} -// CHECK:STDOUT: inst600000AD: {kind: OutParamPattern, arg0: inst600000AC, arg1: call_param1, type: type(symbolic_constant6000005A)} -// CHECK:STDOUT: inst600000AE: {kind: ValueBindingPattern, arg0: entity_name60000018, type: type(symbolic_constant6000005A)} -// CHECK:STDOUT: inst600000AF: {kind: ValueParamPattern, arg0: inst600000AE, arg1: call_param0, type: type(symbolic_constant6000005A)} -// CHECK:STDOUT: inst600000B0: {kind: ImportRefLoaded, arg0: import_ir_inst4D, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000B1: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000B2: {kind: PointerType, arg0: inst600000B1, type: type(TypeType)} -// CHECK:STDOUT: inst600000B3: {kind: PatternType, arg0: inst600000B2, type: type(TypeType)} -// CHECK:STDOUT: inst600000B4: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} -// CHECK:STDOUT: inst600000B5: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000061)} -// CHECK:STDOUT: inst600000B6: {kind: RequireCompleteType, arg0: inst600000A7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000B7: {kind: ImportRefUnloaded, arg0: import_ir_inst54, arg1: entity_name} -// CHECK:STDOUT: inst600000B8: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000B9: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BA: {kind: ImportRefLoaded, arg0: import_ir_inst57, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BB: {kind: ImportRefUnloaded, arg0: import_ir_inst58, arg1: entity_name} -// CHECK:STDOUT: inst600000BC: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000A6: {kind: ImportRefLoaded, arg0: import_ir_inst45, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A7: {kind: ImportRefLoaded, arg0: import_ir_inst46, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A8: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst600000A9: {kind: PointerType, arg0: inst600000A8, type: type(TypeType)} +// CHECK:STDOUT: inst600000AA: {kind: ImplWitness, arg0: inst600000A2, arg1: specific60000008, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000AB: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000058)} +// CHECK:STDOUT: inst600000AC: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} +// CHECK:STDOUT: inst600000AD: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000058)} +// CHECK:STDOUT: inst600000AE: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000005C)} +// CHECK:STDOUT: inst600000AF: {kind: OutParamPattern, arg0: inst600000AE, arg1: call_param1, type: type(symbolic_constant6000005C)} +// CHECK:STDOUT: inst600000B0: {kind: ValueBindingPattern, arg0: entity_name60000019, type: type(symbolic_constant6000005C)} +// CHECK:STDOUT: inst600000B1: {kind: ValueParamPattern, arg0: inst600000B0, arg1: call_param0, type: type(symbolic_constant6000005C)} +// CHECK:STDOUT: inst600000B2: {kind: ImportRefLoaded, arg0: import_ir_inst4F, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000B3: {kind: ImportRefLoaded, arg0: import_ir_inst50, 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: PatternType, arg0: inst600000B5, type: type(TypeType)} +// CHECK:STDOUT: inst600000B7: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} +// CHECK:STDOUT: inst600000B8: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000064)} +// CHECK:STDOUT: inst600000B9: {kind: RequireCompleteType, arg0: inst600000A9, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000BA: {kind: ImportRefUnloaded, arg0: import_ir_inst57, arg1: entity_name} +// CHECK:STDOUT: inst600000BB: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000BC: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst600000BD: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BE: {kind: ImportRefLoaded, arg0: import_ir_inst5B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BF: {kind: ImportRefUnloaded, arg0: import_ir_inst5C, arg1: entity_name} -// CHECK:STDOUT: inst600000C0: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000C1: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000C2: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000C1, type: type(TypeType)} -// CHECK:STDOUT: inst600000C3: {kind: TupleType, arg0: inst_block6000003B, type: type(TypeType)} -// CHECK:STDOUT: inst600000C4: {kind: ImportRefUnloaded, arg0: import_ir_inst5E, arg1: entity_name} -// CHECK:STDOUT: inst600000C5: {kind: ImplWitnessTable, arg0: inst_block6000003C, arg1: impl60000008} -// CHECK:STDOUT: inst600000C6: {kind: ImplWitness, arg0: inst600000C5, arg1: specific6000000A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000C7: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000006A)} -// CHECK:STDOUT: inst600000C8: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} -// CHECK:STDOUT: inst600000C9: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000006A)} -// CHECK:STDOUT: inst600000CA: {kind: TupleType, arg0: inst_block6000003E, type: type(TypeType)} -// CHECK:STDOUT: inst600000CB: {kind: TupleValue, arg0: inst_block6000003D, type: type(inst600000CA)} -// CHECK:STDOUT: inst600000CC: {kind: PatternType, arg0: inst600000C3, type: type(TypeType)} -// CHECK:STDOUT: inst600000CD: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000070)} -// CHECK:STDOUT: inst600000CE: {kind: OutParamPattern, arg0: inst600000CD, arg1: call_param1, type: type(symbolic_constant60000070)} -// CHECK:STDOUT: inst600000CF: {kind: ValueBindingPattern, arg0: entity_name6000001C, type: type(symbolic_constant60000070)} -// CHECK:STDOUT: inst600000D0: {kind: ValueParamPattern, arg0: inst600000CF, arg1: call_param0, type: type(symbolic_constant60000070)} -// CHECK:STDOUT: inst600000D1: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D2: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D3: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D4: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000D3, type: type(TypeType)} -// CHECK:STDOUT: inst600000D5: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D6: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000D5, type: type(TypeType)} -// CHECK:STDOUT: inst600000D7: {kind: TupleType, arg0: inst_block60000043, type: type(TypeType)} -// CHECK:STDOUT: inst600000D8: {kind: PatternType, arg0: inst600000D7, type: type(TypeType)} -// CHECK:STDOUT: inst600000D9: {kind: LookupImplWitness, arg0: inst600000C1, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000DA: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000C1, type: type(TypeType)} -// CHECK:STDOUT: inst600000DB: {kind: ImplWitnessAccess, arg0: inst600000D9, arg1: element0, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DC: {kind: SpecificImplFunction, arg0: inst600000DB, arg1: specific6000000B, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000DD: {kind: PatternType, arg0: inst600000C2, type: type(TypeType)} -// CHECK:STDOUT: inst600000DE: {kind: RequireCompleteType, arg0: inst600000C2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000DF: {kind: RequireCompleteType, arg0: inst600000C3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E0: {kind: RequireCompleteType, arg0: inst600000D7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E1: {kind: RequireCompleteType, arg0: inst600000D4, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E2: {kind: LookupImplWitness, arg0: inst600000D3, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E3: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000D3, type: type(TypeType)} -// CHECK:STDOUT: inst600000E4: {kind: ImplWitnessAccess, arg0: inst600000E2, arg1: element0, type: type(symbolic_constant60000093)} -// CHECK:STDOUT: inst600000E5: {kind: SpecificImplFunction, arg0: inst600000E4, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000E6: {kind: RequireCompleteType, arg0: inst600000D6, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E7: {kind: LookupImplWitness, arg0: inst600000D5, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E8: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000D5, type: type(TypeType)} -// CHECK:STDOUT: inst600000E9: {kind: ImplWitnessAccess, arg0: inst600000E7, arg1: element0, type: type(symbolic_constant60000098)} -// CHECK:STDOUT: inst600000EA: {kind: SpecificImplFunction, arg0: inst600000E9, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000EB: {kind: SymbolicBindingPattern, arg0: entity_name60000027, type: type(inst60000082)} -// CHECK:STDOUT: inst600000EC: {kind: SymbolicBindingPattern, arg0: entity_name60000028, type: type(inst60000082)} -// CHECK:STDOUT: inst600000ED: {kind: ImportRefLoaded, arg0: import_ir_inst7A, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000EE: {kind: ImportRefLoaded, arg0: import_ir_inst7B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000EF: {kind: ImportRefLoaded, arg0: import_ir_inst7C, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000F0: {kind: ImportRefLoaded, arg0: import_ir_inst7D, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000F1: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000F2: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000F3: {kind: TupleValue, arg0: inst_block6000004D, type: type(inst600000CA)} -// CHECK:STDOUT: inst600000F4: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000F1, type: type(TypeType)} -// CHECK:STDOUT: inst600000F5: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000F2, type: type(TypeType)} -// CHECK:STDOUT: inst600000F6: {kind: TupleType, arg0: inst_block6000004E, type: type(TypeType)} -// CHECK:STDOUT: inst600000F7: {kind: ImplWitness, arg0: inst600000C5, arg1: specific6000000F, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F8: {kind: FunctionType, arg0: function60000004, arg1: specific6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst600000F9: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000A9)} -// CHECK:STDOUT: inst600000FA: {kind: ImportRefUnloaded, arg0: import_ir_inst87, arg1: entity_name} -// CHECK:STDOUT: inst600000FB: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000FC: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000FD: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst600000FC, type: type(TypeType)} -// CHECK:STDOUT: inst600000FE: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} -// CHECK:STDOUT: inst600000FF: {kind: ImportRefUnloaded, arg0: import_ir_inst89, arg1: entity_name} -// CHECK:STDOUT: inst60000100: {kind: ImplWitnessTable, arg0: inst_block60000054, arg1: impl60000009} -// CHECK:STDOUT: inst60000101: {kind: ImplWitness, arg0: inst60000100, arg1: specific60000010, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000102: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000B1)} -// CHECK:STDOUT: inst60000103: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} -// CHECK:STDOUT: inst60000104: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000B1)} -// CHECK:STDOUT: inst60000105: {kind: TupleType, arg0: inst_block60000056, type: type(TypeType)} -// CHECK:STDOUT: inst60000106: {kind: TupleValue, arg0: inst_block60000055, type: type(inst60000105)} -// CHECK:STDOUT: inst60000107: {kind: PatternType, arg0: inst600000FE, type: type(TypeType)} -// CHECK:STDOUT: inst60000108: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000B7)} -// CHECK:STDOUT: inst60000109: {kind: OutParamPattern, arg0: inst60000108, arg1: call_param1, type: type(symbolic_constant600000B7)} -// CHECK:STDOUT: inst6000010A: {kind: ValueBindingPattern, arg0: entity_name6000002B, type: type(symbolic_constant600000B7)} -// CHECK:STDOUT: inst6000010B: {kind: ValueParamPattern, arg0: inst6000010A, arg1: call_param0, type: type(symbolic_constant600000B7)} -// CHECK:STDOUT: inst6000010C: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010D: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010E: {kind: ImportRefLoaded, arg0: import_ir_inst92, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010F: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000110: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000010F, type: type(TypeType)} -// CHECK:STDOUT: inst60000111: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000112: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000111, type: type(TypeType)} -// CHECK:STDOUT: inst60000113: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000114: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000113, type: type(TypeType)} -// CHECK:STDOUT: inst60000115: {kind: TupleType, arg0: inst_block6000005B, type: type(TypeType)} -// CHECK:STDOUT: inst60000116: {kind: PatternType, arg0: inst60000115, type: type(TypeType)} -// CHECK:STDOUT: inst60000117: {kind: LookupImplWitness, arg0: inst600000FC, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000118: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000FC, type: type(TypeType)} -// CHECK:STDOUT: inst60000119: {kind: ImplWitnessAccess, arg0: inst60000117, arg1: element0, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011A: {kind: SpecificImplFunction, arg0: inst60000119, arg1: specific60000011, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000011B: {kind: PatternType, arg0: inst600000FD, type: type(TypeType)} -// CHECK:STDOUT: inst6000011C: {kind: RequireCompleteType, arg0: inst600000FD, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000011D: {kind: RequireCompleteType, arg0: inst600000FE, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000011E: {kind: RequireCompleteType, arg0: inst60000115, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000011F: {kind: RequireCompleteType, arg0: inst60000110, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000120: {kind: LookupImplWitness, arg0: inst6000010F, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000121: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst6000010F, type: type(TypeType)} -// CHECK:STDOUT: inst60000122: {kind: ImplWitnessAccess, arg0: inst60000120, arg1: element0, type: type(symbolic_constant600000E4)} -// CHECK:STDOUT: inst60000123: {kind: SpecificImplFunction, arg0: inst60000122, arg1: specific60000013, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000124: {kind: RequireCompleteType, arg0: inst60000112, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000125: {kind: LookupImplWitness, arg0: inst60000111, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000126: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000111, type: type(TypeType)} +// CHECK:STDOUT: inst600000BE: {kind: ImportRefUnloaded, arg0: import_ir_inst5B, arg1: entity_name} +// CHECK:STDOUT: inst600000BF: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000C0: {kind: ImportRefLoaded, arg0: import_ir_inst5D, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C1: {kind: ImportRefLoaded, arg0: import_ir_inst5E, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C2: {kind: ImportRefUnloaded, arg0: import_ir_inst5F, arg1: entity_name} +// CHECK:STDOUT: inst600000C3: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000C4: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000C5: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000C4, type: type(TypeType)} +// CHECK:STDOUT: inst600000C6: {kind: TupleType, arg0: inst_block6000003F, type: type(TypeType)} +// CHECK:STDOUT: inst600000C7: {kind: ImportRefUnloaded, arg0: import_ir_inst61, arg1: entity_name} +// CHECK:STDOUT: inst600000C8: {kind: ImplWitnessTable, arg0: inst_block60000040, arg1: impl60000008} +// CHECK:STDOUT: inst600000C9: {kind: ImplWitness, arg0: inst600000C8, arg1: specific6000000A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000CA: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000006D)} +// CHECK:STDOUT: inst600000CB: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} +// CHECK:STDOUT: inst600000CC: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000006D)} +// CHECK:STDOUT: inst600000CD: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} +// CHECK:STDOUT: inst600000CE: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000CD)} +// CHECK:STDOUT: inst600000CF: {kind: PatternType, arg0: inst600000C6, type: type(TypeType)} +// CHECK:STDOUT: inst600000D0: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000073)} +// CHECK:STDOUT: inst600000D1: {kind: OutParamPattern, arg0: inst600000D0, arg1: call_param1, type: type(symbolic_constant60000073)} +// CHECK:STDOUT: inst600000D2: {kind: ValueBindingPattern, arg0: entity_name6000001D, type: type(symbolic_constant60000073)} +// CHECK:STDOUT: inst600000D3: {kind: ValueParamPattern, arg0: inst600000D2, arg1: call_param0, type: type(symbolic_constant60000073)} +// CHECK:STDOUT: inst600000D4: {kind: ImportRefLoaded, arg0: import_ir_inst68, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000D5: {kind: ImportRefLoaded, arg0: import_ir_inst69, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000D6: {kind: ImportRefLoaded, arg0: import_ir_inst6A, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000D7: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000D8: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000D7, type: type(TypeType)} +// CHECK:STDOUT: inst600000D9: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000DA: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000D9, type: type(TypeType)} +// CHECK:STDOUT: inst600000DB: {kind: TupleType, arg0: inst_block60000048, type: type(TypeType)} +// CHECK:STDOUT: inst600000DC: {kind: PatternType, arg0: inst600000DB, type: type(TypeType)} +// CHECK:STDOUT: inst600000DD: {kind: LookupImplWitness, arg0: inst600000C4, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000DE: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000C4, type: type(TypeType)} +// CHECK:STDOUT: inst600000DF: {kind: ImplWitnessAccess, arg0: inst600000DD, arg1: element0, type: type(symbolic_constant60000083)} +// CHECK:STDOUT: inst600000E0: {kind: SpecificImplFunction, arg0: inst600000DF, arg1: specific6000000B, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000E1: {kind: PatternType, arg0: inst600000C5, type: type(TypeType)} +// CHECK:STDOUT: inst600000E2: {kind: RequireCompleteType, arg0: inst600000C5, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E3: {kind: RequireCompleteType, arg0: inst600000C6, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E4: {kind: RequireCompleteType, arg0: inst600000DB, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E5: {kind: RequireCompleteType, arg0: inst600000D8, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E6: {kind: LookupImplWitness, arg0: inst600000D7, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E7: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000D7, type: type(TypeType)} +// CHECK:STDOUT: inst600000E8: {kind: ImplWitnessAccess, arg0: inst600000E6, arg1: element0, type: type(symbolic_constant60000097)} +// CHECK:STDOUT: inst600000E9: {kind: SpecificImplFunction, arg0: inst600000E8, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000EA: {kind: RequireCompleteType, arg0: inst600000DA, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000EB: {kind: LookupImplWitness, arg0: inst600000D9, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000EC: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000D9, type: type(TypeType)} +// CHECK:STDOUT: inst600000ED: {kind: ImplWitnessAccess, arg0: inst600000EB, arg1: element0, type: type(symbolic_constant6000009C)} +// CHECK:STDOUT: inst600000EE: {kind: SpecificImplFunction, arg0: inst600000ED, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000EF: {kind: SymbolicBindingPattern, arg0: entity_name60000028, type: type(inst60000084)} +// CHECK:STDOUT: inst600000F0: {kind: SymbolicBindingPattern, arg0: entity_name60000029, type: type(inst60000084)} +// CHECK:STDOUT: inst600000F1: {kind: ImportRefLoaded, arg0: import_ir_inst7E, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000F2: {kind: ImportRefLoaded, arg0: import_ir_inst7F, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000F3: {kind: ImportRefLoaded, arg0: import_ir_inst80, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000F4: {kind: ImportRefLoaded, arg0: import_ir_inst81, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000F5: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000F6: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst600000F7: {kind: TupleValue, arg0: inst_block60000052, type: type(inst600000CD)} +// CHECK:STDOUT: inst600000F8: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000F5, type: type(TypeType)} +// CHECK:STDOUT: inst600000F9: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst600000F6, type: type(TypeType)} +// CHECK:STDOUT: inst600000FA: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} +// CHECK:STDOUT: inst600000FB: {kind: ImplWitness, arg0: inst600000C8, arg1: specific6000000F, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000FC: {kind: FunctionType, arg0: function60000004, arg1: specific6000000F, type: type(TypeType)} +// CHECK:STDOUT: inst600000FD: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000AD)} +// CHECK:STDOUT: inst600000FE: {kind: ImportRefUnloaded, arg0: import_ir_inst8B, arg1: entity_name} +// CHECK:STDOUT: inst600000FF: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000100: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000101: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst60000100, type: type(TypeType)} +// CHECK:STDOUT: inst60000102: {kind: TupleType, arg0: inst_block60000058, type: type(TypeType)} +// CHECK:STDOUT: inst60000103: {kind: ImportRefUnloaded, arg0: import_ir_inst8D, arg1: entity_name} +// CHECK:STDOUT: inst60000104: {kind: ImplWitnessTable, arg0: inst_block60000059, arg1: impl60000009} +// CHECK:STDOUT: inst60000105: {kind: ImplWitness, arg0: inst60000104, arg1: specific60000010, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000106: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000B5)} +// CHECK:STDOUT: inst60000107: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} +// CHECK:STDOUT: inst60000108: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000B5)} +// CHECK:STDOUT: inst60000109: {kind: TupleType, arg0: inst_block6000005B, type: type(TypeType)} +// CHECK:STDOUT: inst6000010A: {kind: TupleValue, arg0: inst_block6000005A, type: type(inst60000109)} +// CHECK:STDOUT: inst6000010B: {kind: PatternType, arg0: inst60000102, type: type(TypeType)} +// CHECK:STDOUT: inst6000010C: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000BB)} +// CHECK:STDOUT: inst6000010D: {kind: OutParamPattern, arg0: inst6000010C, arg1: call_param1, type: type(symbolic_constant600000BB)} +// CHECK:STDOUT: inst6000010E: {kind: ValueBindingPattern, arg0: entity_name6000002C, type: type(symbolic_constant600000BB)} +// CHECK:STDOUT: inst6000010F: {kind: ValueParamPattern, arg0: inst6000010E, arg1: call_param0, type: type(symbolic_constant600000BB)} +// CHECK:STDOUT: inst60000110: {kind: ImportRefLoaded, arg0: import_ir_inst94, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000111: {kind: ImportRefLoaded, arg0: import_ir_inst95, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000112: {kind: ImportRefLoaded, arg0: import_ir_inst96, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000113: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000114: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000115: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000114, type: type(TypeType)} +// CHECK:STDOUT: inst60000116: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000117: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst60000116, type: type(TypeType)} +// CHECK:STDOUT: inst60000118: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000119: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst60000118, type: type(TypeType)} +// CHECK:STDOUT: inst6000011A: {kind: TupleType, arg0: inst_block60000061, type: type(TypeType)} +// CHECK:STDOUT: inst6000011B: {kind: PatternType, arg0: inst6000011A, type: type(TypeType)} +// CHECK:STDOUT: inst6000011C: {kind: LookupImplWitness, arg0: inst60000100, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000011D: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000100, type: type(TypeType)} +// CHECK:STDOUT: inst6000011E: {kind: ImplWitnessAccess, arg0: inst6000011C, arg1: element0, type: type(symbolic_constant600000D0)} +// CHECK:STDOUT: inst6000011F: {kind: SpecificImplFunction, arg0: inst6000011E, arg1: specific60000011, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000120: {kind: PatternType, arg0: inst60000101, type: type(TypeType)} +// CHECK:STDOUT: inst60000121: {kind: RequireCompleteType, arg0: inst60000101, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000122: {kind: RequireCompleteType, arg0: inst60000102, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000123: {kind: RequireCompleteType, arg0: inst6000011A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000124: {kind: RequireCompleteType, arg0: inst60000115, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000125: {kind: LookupImplWitness, arg0: inst60000114, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000126: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000114, type: type(TypeType)} // CHECK:STDOUT: inst60000127: {kind: ImplWitnessAccess, arg0: inst60000125, arg1: element0, type: type(symbolic_constant600000E9)} -// CHECK:STDOUT: inst60000128: {kind: SpecificImplFunction, arg0: inst60000127, arg1: specific60000014, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000129: {kind: RequireCompleteType, arg0: inst60000114, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012A: {kind: LookupImplWitness, arg0: inst60000113, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012B: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000113, type: type(TypeType)} +// CHECK:STDOUT: inst60000128: {kind: SpecificImplFunction, arg0: inst60000127, arg1: specific60000013, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000129: {kind: RequireCompleteType, arg0: inst60000117, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012A: {kind: LookupImplWitness, arg0: inst60000116, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012B: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000116, type: type(TypeType)} // CHECK:STDOUT: inst6000012C: {kind: ImplWitnessAccess, arg0: inst6000012A, arg1: element0, type: type(symbolic_constant600000EE)} -// CHECK:STDOUT: inst6000012D: {kind: SpecificImplFunction, arg0: inst6000012C, arg1: specific60000015, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000012E: {kind: SymbolicBindingPattern, arg0: entity_name6000003B, type: type(inst60000082)} -// CHECK:STDOUT: inst6000012F: {kind: SymbolicBindingPattern, arg0: entity_name6000003C, type: type(inst60000082)} -// CHECK:STDOUT: inst60000130: {kind: SymbolicBindingPattern, arg0: entity_name6000003D, type: type(inst60000082)} -// CHECK:STDOUT: inst60000131: {kind: ImportRefLoaded, arg0: import_ir_instAE, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000132: {kind: ImportRefLoaded, arg0: import_ir_instAF, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000133: {kind: ImportRefLoaded, arg0: import_ir_instB0, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000134: {kind: ImportRefLoaded, arg0: import_ir_instB1, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000135: {kind: ImportRefLoaded, arg0: import_ir_instB2, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000136: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000137: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000138: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000139: {kind: TupleValue, arg0: inst_block60000066, type: type(inst60000105)} -// CHECK:STDOUT: inst6000013A: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000136, type: type(TypeType)} -// CHECK:STDOUT: inst6000013B: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000137, type: type(TypeType)} -// CHECK:STDOUT: inst6000013C: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000138, type: type(TypeType)} -// CHECK:STDOUT: inst6000013D: {kind: TupleType, arg0: inst_block60000067, type: type(TypeType)} -// CHECK:STDOUT: inst6000013E: {kind: ImplWitness, arg0: inst60000100, arg1: specific60000016, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013F: {kind: FunctionType, arg0: function60000005, arg1: specific60000016, type: type(TypeType)} -// CHECK:STDOUT: inst60000140: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000103)} -// CHECK:STDOUT: inst60000141: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst60000142: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst60000143: {kind: RequireSpecificDefinition, arg0: specific60000017, type: type(inst(RequireSpecificDefinitionType))} -// CHECK:STDOUT: inst60000144: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000145: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000146: {kind: FacetValue, arg0: inst6000001B, arg1: inst_block6000006E, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000147: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000146, type: type(TypeType)} -// CHECK:STDOUT: inst60000148: {kind: ImplWitnessAccess, arg0: inst60000144, arg1: element0, type: type(symbolic_constant6000010E)} -// CHECK:STDOUT: inst60000149: {kind: ImplWitnessAccess, arg0: inst60000144, arg1: element0, type: type(symbolic_constant6000010B)} -// CHECK:STDOUT: inst6000014A: {kind: FacetValue, arg0: inst6000001C, arg1: inst_block6000006F, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000014B: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst6000014A, type: type(TypeType)} -// CHECK:STDOUT: inst6000014C: {kind: ImplWitnessAccess, arg0: inst60000145, arg1: element0, type: type(symbolic_constant6000010E)} -// CHECK:STDOUT: inst6000014D: {kind: BoundMethod, arg0: inst60000042, arg1: inst60000148, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst6000014E: {kind: SpecificImplFunction, arg0: inst60000148, arg1: specific60000018, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000014F: {kind: SpecificImplFunction, arg0: inst60000149, arg1: specific60000018, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000150: {kind: SpecificImplFunction, arg0: inst6000014C, arg1: specific60000019, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000151: {kind: BoundMethod, arg0: inst60000042, arg1: inst6000014E, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst60000152: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000153: {kind: Call, arg0: inst60000151, arg1: inst_block60000073, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000154: {kind: InitializeFrom, arg0: inst60000153, arg1: inst60000046, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000155: {kind: TupleAccess, arg0: inst60000037, arg1: element1, type: type(inst60000024)} -// CHECK:STDOUT: inst60000156: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000155, type: type(inst60000024)} -// CHECK:STDOUT: inst60000157: {kind: Converted, arg0: inst60000043, arg1: inst60000156, type: type(inst60000024)} -// CHECK:STDOUT: inst60000158: {kind: TupleInit, arg0: inst_block60000074, arg1: inst60000037, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000159: {kind: Converted, arg0: inst60000044, arg1: inst60000158, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst6000015A: {kind: ReturnExpr, arg0: inst60000159, arg1: inst60000037} +// CHECK:STDOUT: inst6000012D: {kind: SpecificImplFunction, arg0: inst6000012C, arg1: specific60000014, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000012E: {kind: RequireCompleteType, arg0: inst60000119, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012F: {kind: LookupImplWitness, arg0: inst60000118, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000130: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000118, type: type(TypeType)} +// CHECK:STDOUT: inst60000131: {kind: ImplWitnessAccess, arg0: inst6000012F, arg1: element0, type: type(symbolic_constant600000F3)} +// CHECK:STDOUT: inst60000132: {kind: SpecificImplFunction, arg0: inst60000131, arg1: specific60000015, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000133: {kind: SymbolicBindingPattern, arg0: entity_name6000003C, type: type(inst60000084)} +// CHECK:STDOUT: inst60000134: {kind: SymbolicBindingPattern, arg0: entity_name6000003D, type: type(inst60000084)} +// CHECK:STDOUT: inst60000135: {kind: SymbolicBindingPattern, arg0: entity_name6000003E, type: type(inst60000084)} +// CHECK:STDOUT: inst60000136: {kind: ImportRefLoaded, arg0: import_ir_instB3, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000137: {kind: ImportRefLoaded, arg0: import_ir_instB4, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000138: {kind: ImportRefLoaded, arg0: import_ir_instB5, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000139: {kind: ImportRefLoaded, arg0: import_ir_instB6, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000013A: {kind: ImportRefLoaded, arg0: import_ir_instB7, arg1: entity_name, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000013B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000013C: {kind: SymbolicBinding, arg0: entity_name6000001B, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000013D: {kind: SymbolicBinding, arg0: entity_name6000002A, arg1: inst, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000013E: {kind: TupleValue, arg0: inst_block6000006C, type: type(inst60000109)} +// CHECK:STDOUT: inst6000013F: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000013B, type: type(TypeType)} +// CHECK:STDOUT: inst60000140: {kind: SymbolicBindingType, arg0: entity_name6000001B, arg1: inst6000013C, type: type(TypeType)} +// CHECK:STDOUT: inst60000141: {kind: SymbolicBindingType, arg0: entity_name6000002A, arg1: inst6000013D, type: type(TypeType)} +// CHECK:STDOUT: inst60000142: {kind: TupleType, arg0: inst_block6000006D, type: type(TypeType)} +// CHECK:STDOUT: inst60000143: {kind: ImplWitness, arg0: inst60000104, arg1: specific60000016, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000144: {kind: FunctionType, arg0: function60000005, arg1: specific60000016, type: type(TypeType)} +// CHECK:STDOUT: inst60000145: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000108)} +// CHECK:STDOUT: inst60000146: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst60000147: {kind: RequireSpecificDefinition, arg0: specific60000007, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst60000148: {kind: RequireSpecificDefinition, arg0: specific60000017, type: type(inst(RequireSpecificDefinitionType))} +// CHECK:STDOUT: inst60000149: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000014A: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000014B: {kind: FacetValue, arg0: inst6000001B, arg1: inst_block60000074, type: type(inst6000004A)} +// CHECK:STDOUT: inst6000014C: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst6000014B, type: type(TypeType)} +// CHECK:STDOUT: inst6000014D: {kind: ImplWitnessAccess, arg0: inst60000149, arg1: element0, type: type(symbolic_constant60000113)} +// CHECK:STDOUT: inst6000014E: {kind: ImplWitnessAccess, arg0: inst60000149, arg1: element0, type: type(symbolic_constant60000110)} +// CHECK:STDOUT: inst6000014F: {kind: FacetValue, arg0: inst6000001C, arg1: inst_block60000075, type: type(inst6000004A)} +// CHECK:STDOUT: inst60000150: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst6000014F, type: type(TypeType)} +// CHECK:STDOUT: inst60000151: {kind: ImplWitnessAccess, arg0: inst6000014A, arg1: element0, type: type(symbolic_constant60000113)} +// CHECK:STDOUT: inst60000152: {kind: BoundMethod, arg0: inst60000042, arg1: inst6000014D, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst60000153: {kind: SpecificImplFunction, arg0: inst6000014D, arg1: specific60000018, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000154: {kind: SpecificImplFunction, arg0: inst6000014E, arg1: specific60000018, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000155: {kind: SpecificImplFunction, arg0: inst60000151, arg1: specific60000019, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000156: {kind: BoundMethod, arg0: inst60000042, arg1: inst60000153, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst60000157: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000158: {kind: Call, arg0: inst60000156, arg1: inst_block60000079, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000159: {kind: InitializeFrom, arg0: inst60000158, arg1: inst60000046, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst6000015A: {kind: TupleAccess, arg0: inst60000037, arg1: element1, type: type(inst60000024)} +// CHECK:STDOUT: inst6000015B: {kind: TupleInit, arg0: inst_block_empty, arg1: inst6000015A, type: type(inst60000024)} +// CHECK:STDOUT: inst6000015C: {kind: Converted, arg0: inst60000043, arg1: inst6000015B, type: type(inst60000024)} +// CHECK:STDOUT: inst6000015D: {kind: TupleInit, arg0: inst_block6000007A, arg1: inst60000037, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst6000015E: {kind: Converted, arg0: inst60000044, arg1: inst6000015D, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst6000015F: {kind: ReturnExpr, arg0: inst6000015E, arg1: inst60000037} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: instE: concrete_constant(instE) @@ -791,143 +802,143 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000058: concrete_constant(inst60000058) // CHECK:STDOUT: inst60000059: concrete_constant(inst60000059) // CHECK:STDOUT: inst6000005A: concrete_constant(inst6000005A) -// CHECK:STDOUT: inst6000005B: symbolic_constant60000012 -// CHECK:STDOUT: inst6000005C: symbolic_constant60000018 +// CHECK:STDOUT: inst6000005B: symbolic_constant60000018 +// CHECK:STDOUT: inst6000005C: symbolic_constant60000012 // CHECK:STDOUT: inst6000005D: symbolic_constant60000019 // CHECK:STDOUT: inst6000005E: symbolic_constant6000001A -// CHECK:STDOUT: inst6000005F: symbolic_constant60000109 -// CHECK:STDOUT: inst60000060: constant -// CHECK:STDOUT: inst60000061: concrete_constant(inst60000061) -// CHECK:STDOUT: inst60000062: symbolic_constant6000001B +// CHECK:STDOUT: inst6000005F: symbolic_constant6000001B +// CHECK:STDOUT: inst60000060: symbolic_constant6000010E +// CHECK:STDOUT: inst60000061: constant +// CHECK:STDOUT: inst60000062: concrete_constant(inst60000062) // CHECK:STDOUT: inst60000063: symbolic_constant6000001C // CHECK:STDOUT: inst60000064: symbolic_constant6000001D -// CHECK:STDOUT: inst60000065: constant -// CHECK:STDOUT: inst60000066: concrete_constant(inst60000066) -// CHECK:STDOUT: inst60000067: symbolic_constant6000001F -// CHECK:STDOUT: inst60000068: symbolic_constant60000023 -// CHECK:STDOUT: inst60000069: symbolic_constant60000021 +// CHECK:STDOUT: inst60000065: symbolic_constant6000001E +// CHECK:STDOUT: inst60000066: constant +// CHECK:STDOUT: inst60000067: concrete_constant(inst60000067) +// CHECK:STDOUT: inst60000068: symbolic_constant60000020 +// CHECK:STDOUT: inst60000069: symbolic_constant60000024 // CHECK:STDOUT: inst6000006A: symbolic_constant60000022 -// CHECK:STDOUT: inst6000006B: symbolic_constant60000025 -// CHECK:STDOUT: inst6000006C: concrete_constant(inst6000006C) +// CHECK:STDOUT: inst6000006B: symbolic_constant60000023 +// CHECK:STDOUT: inst6000006C: symbolic_constant60000026 // CHECK:STDOUT: inst6000006D: concrete_constant(inst6000006D) // CHECK:STDOUT: inst6000006E: concrete_constant(inst6000006E) // CHECK:STDOUT: inst6000006F: concrete_constant(inst6000006F) -// CHECK:STDOUT: inst60000070: symbolic_constant6000002A -// CHECK:STDOUT: inst60000071: symbolic_constant6000002B -// CHECK:STDOUT: inst60000072: symbolic_constant6000002C +// CHECK:STDOUT: inst60000070: concrete_constant(inst60000070) +// CHECK:STDOUT: inst60000071: symbolic_constant6000002C +// CHECK:STDOUT: inst60000072: symbolic_constant6000002B // CHECK:STDOUT: inst60000073: symbolic_constant6000002D // CHECK:STDOUT: inst60000074: symbolic_constant6000002E // CHECK:STDOUT: inst60000075: symbolic_constant6000002F // CHECK:STDOUT: inst60000076: symbolic_constant60000030 // CHECK:STDOUT: inst60000077: symbolic_constant60000031 // CHECK:STDOUT: inst60000078: symbolic_constant60000032 -// CHECK:STDOUT: inst60000079: symbolic_constant60000034 -// CHECK:STDOUT: inst6000007A: symbolic_constant60000038 -// CHECK:STDOUT: inst6000007B: symbolic_constant6000003A -// CHECK:STDOUT: inst6000007C: symbolic_constant6000003C -// CHECK:STDOUT: inst6000007D: symbolic_constant6000003D +// CHECK:STDOUT: inst60000079: symbolic_constant60000033 +// CHECK:STDOUT: inst6000007A: symbolic_constant60000034 +// CHECK:STDOUT: inst6000007B: symbolic_constant60000036 +// CHECK:STDOUT: inst6000007C: symbolic_constant6000003A +// CHECK:STDOUT: inst6000007D: symbolic_constant6000003C // CHECK:STDOUT: inst6000007E: symbolic_constant6000003E // CHECK:STDOUT: inst6000007F: symbolic_constant6000003F // CHECK:STDOUT: inst60000080: symbolic_constant60000040 // CHECK:STDOUT: inst60000081: symbolic_constant60000041 -// CHECK:STDOUT: inst60000082: concrete_constant(inst60000082) -// CHECK:STDOUT: inst60000083: concrete_constant(inst60000083) -// CHECK:STDOUT: inst60000084: symbolic_constant6000001E -// CHECK:STDOUT: inst60000085: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000086: symbolic_constant6000002A -// CHECK:STDOUT: inst60000087: symbolic_constant60000045 -// CHECK:STDOUT: inst60000088: symbolic_constant60000046 +// CHECK:STDOUT: inst60000082: symbolic_constant60000042 +// CHECK:STDOUT: inst60000083: symbolic_constant60000043 +// CHECK:STDOUT: inst60000084: concrete_constant(inst60000084) +// CHECK:STDOUT: inst60000085: concrete_constant(inst60000085) +// CHECK:STDOUT: inst60000086: symbolic_constant6000001F +// CHECK:STDOUT: inst60000087: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst60000088: symbolic_constant6000002B // CHECK:STDOUT: inst60000089: symbolic_constant60000047 // CHECK:STDOUT: inst6000008A: symbolic_constant60000048 -// CHECK:STDOUT: inst6000008B: symbolic_constant6000004A -// CHECK:STDOUT: inst6000008C: symbolic_constant6000004B -// CHECK:STDOUT: inst6000008D: constant -// CHECK:STDOUT: inst6000008E: concrete_constant(inst6000008E) -// CHECK:STDOUT: inst6000008F: concrete_constant(inst(BoolType)) -// CHECK:STDOUT: inst60000090: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000091: constant -// CHECK:STDOUT: inst60000092: concrete_constant(inst60000092) -// CHECK:STDOUT: inst60000093: concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: inst60000094: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000095: constant -// CHECK:STDOUT: inst60000096: concrete_constant(inst60000096) -// CHECK:STDOUT: inst60000097: concrete_constant(inst(FloatLiteralType)) -// CHECK:STDOUT: inst60000098: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000099: constant -// CHECK:STDOUT: inst6000009A: concrete_constant(inst6000009A) -// CHECK:STDOUT: inst6000009B: concrete_constant(inst(IntLiteralType)) -// CHECK:STDOUT: inst6000009C: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst6000009D: symbolic_constant60000105 -// CHECK:STDOUT: inst6000009E: concrete_constant(inst6000009E) -// CHECK:STDOUT: inst6000009F: constant +// CHECK:STDOUT: inst6000008B: symbolic_constant60000049 +// CHECK:STDOUT: inst6000008C: symbolic_constant6000004A +// CHECK:STDOUT: inst6000008D: symbolic_constant6000004C +// CHECK:STDOUT: inst6000008E: symbolic_constant6000004D +// CHECK:STDOUT: inst6000008F: constant +// CHECK:STDOUT: inst60000090: concrete_constant(inst60000090) +// CHECK:STDOUT: inst60000091: concrete_constant(inst(BoolType)) +// CHECK:STDOUT: inst60000092: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst60000093: constant +// CHECK:STDOUT: inst60000094: concrete_constant(inst60000094) +// CHECK:STDOUT: inst60000095: concrete_constant(inst(CharLiteralType)) +// CHECK:STDOUT: inst60000096: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst60000097: constant +// CHECK:STDOUT: inst60000098: concrete_constant(inst60000098) +// CHECK:STDOUT: inst60000099: concrete_constant(inst(FloatLiteralType)) +// CHECK:STDOUT: inst6000009A: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst6000009B: constant +// CHECK:STDOUT: inst6000009C: concrete_constant(inst6000009C) +// CHECK:STDOUT: inst6000009D: concrete_constant(inst(IntLiteralType)) +// CHECK:STDOUT: inst6000009E: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst6000009F: symbolic_constant6000010A // CHECK:STDOUT: inst600000A0: concrete_constant(inst600000A0) -// CHECK:STDOUT: inst600000A1: symbolic_constant6000004D +// CHECK:STDOUT: inst600000A1: constant // CHECK:STDOUT: inst600000A2: concrete_constant(inst600000A2) -// CHECK:STDOUT: inst600000A3: symbolic_constant6000004C -// CHECK:STDOUT: inst600000A4: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000A5: symbolic_constant60000051 -// CHECK:STDOUT: inst600000A6: symbolic_constant60000052 +// CHECK:STDOUT: inst600000A3: symbolic_constant6000004F +// CHECK:STDOUT: inst600000A4: concrete_constant(inst600000A4) +// CHECK:STDOUT: inst600000A5: symbolic_constant6000004E +// CHECK:STDOUT: inst600000A6: concrete_constant(inst6000004A) // CHECK:STDOUT: inst600000A7: symbolic_constant60000053 // CHECK:STDOUT: inst600000A8: symbolic_constant60000054 -// CHECK:STDOUT: inst600000A9: symbolic_constant60000058 +// CHECK:STDOUT: inst600000A9: symbolic_constant60000055 // CHECK:STDOUT: inst600000AA: symbolic_constant60000056 -// CHECK:STDOUT: inst600000AB: symbolic_constant60000057 -// CHECK:STDOUT: inst600000AC: concrete_constant(inst600000AC) -// CHECK:STDOUT: inst600000AD: concrete_constant(inst600000AD) +// CHECK:STDOUT: inst600000AB: symbolic_constant6000005A +// CHECK:STDOUT: inst600000AC: symbolic_constant60000058 +// CHECK:STDOUT: inst600000AD: symbolic_constant60000059 // CHECK:STDOUT: inst600000AE: concrete_constant(inst600000AE) // CHECK:STDOUT: inst600000AF: concrete_constant(inst600000AF) -// CHECK:STDOUT: inst600000B0: symbolic_constant60000051 -// CHECK:STDOUT: inst600000B1: symbolic_constant6000005D -// CHECK:STDOUT: inst600000B2: symbolic_constant6000005E -// CHECK:STDOUT: inst600000B3: symbolic_constant6000005F -// CHECK:STDOUT: inst600000B4: symbolic_constant60000061 -// CHECK:STDOUT: inst600000B5: symbolic_constant60000062 -// CHECK:STDOUT: inst600000B6: symbolic_constant60000063 -// CHECK:STDOUT: inst600000B7: constant -// CHECK:STDOUT: inst600000B8: concrete_constant(inst600000B8) -// CHECK:STDOUT: inst600000B9: concrete_constant(inst(TypeType)) -// CHECK:STDOUT: inst600000BA: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000BB: constant -// CHECK:STDOUT: inst600000BC: concrete_constant(inst600000BC) -// CHECK:STDOUT: inst600000BD: concrete_constant(inst60000024) -// CHECK:STDOUT: inst600000BE: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000BF: constant -// CHECK:STDOUT: inst600000C0: concrete_constant(inst600000C0) -// CHECK:STDOUT: inst600000C1: symbolic_constant60000064 -// CHECK:STDOUT: inst600000C2: symbolic_constant60000065 -// CHECK:STDOUT: inst600000C3: symbolic_constant60000066 -// CHECK:STDOUT: inst600000C4: constant -// CHECK:STDOUT: inst600000C5: concrete_constant(inst600000C5) -// CHECK:STDOUT: inst600000C6: symbolic_constant60000068 -// CHECK:STDOUT: inst600000C7: symbolic_constant6000006C -// CHECK:STDOUT: inst600000C8: symbolic_constant6000006A +// CHECK:STDOUT: inst600000B0: concrete_constant(inst600000B0) +// CHECK:STDOUT: inst600000B1: concrete_constant(inst600000B1) +// CHECK:STDOUT: inst600000B2: symbolic_constant6000005F +// CHECK:STDOUT: inst600000B3: symbolic_constant60000053 +// CHECK:STDOUT: inst600000B4: symbolic_constant60000060 +// CHECK:STDOUT: inst600000B5: symbolic_constant60000061 +// CHECK:STDOUT: inst600000B6: symbolic_constant60000062 +// CHECK:STDOUT: inst600000B7: symbolic_constant60000064 +// CHECK:STDOUT: inst600000B8: symbolic_constant60000065 +// CHECK:STDOUT: inst600000B9: symbolic_constant60000066 +// CHECK:STDOUT: inst600000BA: constant +// CHECK:STDOUT: inst600000BB: concrete_constant(inst600000BB) +// CHECK:STDOUT: inst600000BC: concrete_constant(inst(TypeType)) +// CHECK:STDOUT: inst600000BD: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst600000BE: constant +// CHECK:STDOUT: inst600000BF: concrete_constant(inst600000BF) +// CHECK:STDOUT: inst600000C0: concrete_constant(inst60000024) +// CHECK:STDOUT: inst600000C1: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst600000C2: constant +// CHECK:STDOUT: inst600000C3: concrete_constant(inst600000C3) +// CHECK:STDOUT: inst600000C4: symbolic_constant60000067 +// CHECK:STDOUT: inst600000C5: symbolic_constant60000068 +// CHECK:STDOUT: inst600000C6: symbolic_constant60000069 +// CHECK:STDOUT: inst600000C7: constant +// CHECK:STDOUT: inst600000C8: concrete_constant(inst600000C8) // CHECK:STDOUT: inst600000C9: symbolic_constant6000006B -// CHECK:STDOUT: inst600000CA: concrete_constant(inst600000CA) -// CHECK:STDOUT: inst600000CB: symbolic_constant6000006E -// CHECK:STDOUT: inst600000CC: symbolic_constant6000006F +// CHECK:STDOUT: inst600000CA: symbolic_constant6000006F +// CHECK:STDOUT: inst600000CB: symbolic_constant6000006D +// CHECK:STDOUT: inst600000CC: symbolic_constant6000006E // CHECK:STDOUT: inst600000CD: concrete_constant(inst600000CD) -// CHECK:STDOUT: inst600000CE: concrete_constant(inst600000CE) -// CHECK:STDOUT: inst600000CF: concrete_constant(inst600000CF) +// CHECK:STDOUT: inst600000CE: symbolic_constant60000071 +// CHECK:STDOUT: inst600000CF: symbolic_constant60000072 // CHECK:STDOUT: inst600000D0: concrete_constant(inst600000D0) -// CHECK:STDOUT: inst600000D1: symbolic_constant60000077 -// CHECK:STDOUT: inst600000D2: symbolic_constant60000076 -// CHECK:STDOUT: inst600000D3: symbolic_constant60000078 -// CHECK:STDOUT: inst600000D4: symbolic_constant60000079 +// CHECK:STDOUT: inst600000D1: concrete_constant(inst600000D1) +// CHECK:STDOUT: inst600000D2: concrete_constant(inst600000D2) +// CHECK:STDOUT: inst600000D3: concrete_constant(inst600000D3) +// CHECK:STDOUT: inst600000D4: symbolic_constant6000007B // CHECK:STDOUT: inst600000D5: symbolic_constant6000007A -// CHECK:STDOUT: inst600000D6: symbolic_constant6000007B +// CHECK:STDOUT: inst600000D6: symbolic_constant60000079 // CHECK:STDOUT: inst600000D7: symbolic_constant6000007C // CHECK:STDOUT: inst600000D8: symbolic_constant6000007D // CHECK:STDOUT: inst600000D9: symbolic_constant6000007E // CHECK:STDOUT: inst600000DA: symbolic_constant6000007F // CHECK:STDOUT: inst600000DB: symbolic_constant60000080 // CHECK:STDOUT: inst600000DC: symbolic_constant60000081 -// CHECK:STDOUT: inst600000DD: symbolic_constant60000083 -// CHECK:STDOUT: inst600000DE: symbolic_constant60000087 -// CHECK:STDOUT: inst600000DF: symbolic_constant6000008E -// CHECK:STDOUT: inst600000E0: symbolic_constant60000090 -// CHECK:STDOUT: inst600000E1: symbolic_constant60000091 -// CHECK:STDOUT: inst600000E2: symbolic_constant60000092 -// CHECK:STDOUT: inst600000E3: symbolic_constant60000093 +// CHECK:STDOUT: inst600000DD: symbolic_constant60000082 +// CHECK:STDOUT: inst600000DE: symbolic_constant60000083 +// CHECK:STDOUT: inst600000DF: symbolic_constant60000084 +// CHECK:STDOUT: inst600000E0: symbolic_constant60000085 +// CHECK:STDOUT: inst600000E1: symbolic_constant60000087 +// CHECK:STDOUT: inst600000E2: symbolic_constant6000008B +// CHECK:STDOUT: inst600000E3: symbolic_constant60000092 // CHECK:STDOUT: inst600000E4: symbolic_constant60000094 // CHECK:STDOUT: inst600000E5: symbolic_constant60000095 // CHECK:STDOUT: inst600000E6: symbolic_constant60000096 @@ -935,47 +946,47 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst600000E8: symbolic_constant60000098 // CHECK:STDOUT: inst600000E9: symbolic_constant60000099 // CHECK:STDOUT: inst600000EA: symbolic_constant6000009A -// CHECK:STDOUT: inst600000EB: concrete_constant(inst600000EB) -// CHECK:STDOUT: inst600000EC: concrete_constant(inst600000EC) -// CHECK:STDOUT: inst600000ED: symbolic_constant60000067 -// CHECK:STDOUT: inst600000EE: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000EF: symbolic_constant60000077 -// CHECK:STDOUT: inst600000F0: symbolic_constant60000076 -// CHECK:STDOUT: inst600000F1: symbolic_constant600000A1 -// CHECK:STDOUT: inst600000F2: symbolic_constant600000A2 -// CHECK:STDOUT: inst600000F3: symbolic_constant600000A3 -// CHECK:STDOUT: inst600000F4: symbolic_constant600000A4 +// CHECK:STDOUT: inst600000EB: symbolic_constant6000009B +// CHECK:STDOUT: inst600000EC: symbolic_constant6000009C +// CHECK:STDOUT: inst600000ED: symbolic_constant6000009D +// CHECK:STDOUT: inst600000EE: symbolic_constant6000009E +// CHECK:STDOUT: inst600000EF: concrete_constant(inst600000EF) +// CHECK:STDOUT: inst600000F0: concrete_constant(inst600000F0) +// CHECK:STDOUT: inst600000F1: symbolic_constant6000006A +// CHECK:STDOUT: inst600000F2: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst600000F3: symbolic_constant6000007A +// CHECK:STDOUT: inst600000F4: symbolic_constant60000079 // CHECK:STDOUT: inst600000F5: symbolic_constant600000A5 // CHECK:STDOUT: inst600000F6: symbolic_constant600000A6 // CHECK:STDOUT: inst600000F7: symbolic_constant600000A7 -// CHECK:STDOUT: inst600000F8: symbolic_constant600000A9 -// CHECK:STDOUT: inst600000F9: symbolic_constant600000AA -// CHECK:STDOUT: inst600000FA: constant -// CHECK:STDOUT: inst600000FB: concrete_constant(inst600000FB) -// CHECK:STDOUT: inst600000FC: symbolic_constant600000AB -// CHECK:STDOUT: inst600000FD: symbolic_constant600000AC -// CHECK:STDOUT: inst600000FE: symbolic_constant600000AD -// CHECK:STDOUT: inst600000FF: constant -// CHECK:STDOUT: inst60000100: concrete_constant(inst60000100) -// CHECK:STDOUT: inst60000101: symbolic_constant600000AF -// CHECK:STDOUT: inst60000102: symbolic_constant600000B3 -// CHECK:STDOUT: inst60000103: symbolic_constant600000B1 -// CHECK:STDOUT: inst60000104: symbolic_constant600000B2 -// CHECK:STDOUT: inst60000105: concrete_constant(inst60000105) -// CHECK:STDOUT: inst60000106: symbolic_constant600000B5 -// CHECK:STDOUT: inst60000107: symbolic_constant600000B6 -// CHECK:STDOUT: inst60000108: concrete_constant(inst60000108) +// CHECK:STDOUT: inst600000F8: symbolic_constant600000A8 +// CHECK:STDOUT: inst600000F9: symbolic_constant600000A9 +// CHECK:STDOUT: inst600000FA: symbolic_constant600000AA +// CHECK:STDOUT: inst600000FB: symbolic_constant600000AB +// CHECK:STDOUT: inst600000FC: symbolic_constant600000AD +// CHECK:STDOUT: inst600000FD: symbolic_constant600000AE +// CHECK:STDOUT: inst600000FE: constant +// CHECK:STDOUT: inst600000FF: concrete_constant(inst600000FF) +// CHECK:STDOUT: inst60000100: symbolic_constant600000AF +// CHECK:STDOUT: inst60000101: symbolic_constant600000B0 +// CHECK:STDOUT: inst60000102: symbolic_constant600000B1 +// CHECK:STDOUT: inst60000103: constant +// CHECK:STDOUT: inst60000104: concrete_constant(inst60000104) +// CHECK:STDOUT: inst60000105: symbolic_constant600000B3 +// CHECK:STDOUT: inst60000106: symbolic_constant600000B7 +// CHECK:STDOUT: inst60000107: symbolic_constant600000B5 +// CHECK:STDOUT: inst60000108: symbolic_constant600000B6 // CHECK:STDOUT: inst60000109: concrete_constant(inst60000109) -// CHECK:STDOUT: inst6000010A: concrete_constant(inst6000010A) -// CHECK:STDOUT: inst6000010B: concrete_constant(inst6000010B) -// CHECK:STDOUT: inst6000010C: symbolic_constant600000C1 -// CHECK:STDOUT: inst6000010D: symbolic_constant600000C0 -// CHECK:STDOUT: inst6000010E: symbolic_constant600000BF -// CHECK:STDOUT: inst6000010F: symbolic_constant600000C2 -// CHECK:STDOUT: inst60000110: symbolic_constant600000C3 -// CHECK:STDOUT: inst60000111: symbolic_constant600000C4 -// CHECK:STDOUT: inst60000112: symbolic_constant600000C5 -// CHECK:STDOUT: inst60000113: symbolic_constant600000C6 +// CHECK:STDOUT: inst6000010A: symbolic_constant600000B9 +// CHECK:STDOUT: inst6000010B: symbolic_constant600000BA +// CHECK:STDOUT: inst6000010C: concrete_constant(inst6000010C) +// CHECK:STDOUT: inst6000010D: concrete_constant(inst6000010D) +// CHECK:STDOUT: inst6000010E: concrete_constant(inst6000010E) +// CHECK:STDOUT: inst6000010F: concrete_constant(inst6000010F) +// CHECK:STDOUT: inst60000110: symbolic_constant600000C6 +// CHECK:STDOUT: inst60000111: symbolic_constant600000C5 +// CHECK:STDOUT: inst60000112: symbolic_constant600000C4 +// CHECK:STDOUT: inst60000113: symbolic_constant600000C3 // CHECK:STDOUT: inst60000114: symbolic_constant600000C7 // CHECK:STDOUT: inst60000115: symbolic_constant600000C8 // CHECK:STDOUT: inst60000116: symbolic_constant600000C9 @@ -983,14 +994,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst60000118: symbolic_constant600000CB // CHECK:STDOUT: inst60000119: symbolic_constant600000CC // CHECK:STDOUT: inst6000011A: symbolic_constant600000CD -// CHECK:STDOUT: inst6000011B: symbolic_constant600000CF -// CHECK:STDOUT: inst6000011C: symbolic_constant600000D3 -// CHECK:STDOUT: inst6000011D: symbolic_constant600000DF -// CHECK:STDOUT: inst6000011E: symbolic_constant600000E1 -// CHECK:STDOUT: inst6000011F: symbolic_constant600000E2 -// CHECK:STDOUT: inst60000120: symbolic_constant600000E3 -// CHECK:STDOUT: inst60000121: symbolic_constant600000E4 -// CHECK:STDOUT: inst60000122: symbolic_constant600000E5 +// CHECK:STDOUT: inst6000011B: symbolic_constant600000CE +// CHECK:STDOUT: inst6000011C: symbolic_constant600000CF +// CHECK:STDOUT: inst6000011D: symbolic_constant600000D0 +// CHECK:STDOUT: inst6000011E: symbolic_constant600000D1 +// CHECK:STDOUT: inst6000011F: symbolic_constant600000D2 +// CHECK:STDOUT: inst60000120: symbolic_constant600000D4 +// CHECK:STDOUT: inst60000121: symbolic_constant600000D8 +// CHECK:STDOUT: inst60000122: symbolic_constant600000E4 // CHECK:STDOUT: inst60000123: symbolic_constant600000E6 // CHECK:STDOUT: inst60000124: symbolic_constant600000E7 // CHECK:STDOUT: inst60000125: symbolic_constant600000E8 @@ -1002,43 +1013,48 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst6000012B: symbolic_constant600000EE // CHECK:STDOUT: inst6000012C: symbolic_constant600000EF // CHECK:STDOUT: inst6000012D: symbolic_constant600000F0 -// CHECK:STDOUT: inst6000012E: concrete_constant(inst6000012E) -// CHECK:STDOUT: inst6000012F: concrete_constant(inst6000012F) -// CHECK:STDOUT: inst60000130: concrete_constant(inst60000130) -// CHECK:STDOUT: inst60000131: symbolic_constant600000AE -// CHECK:STDOUT: inst60000132: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000133: symbolic_constant600000C1 -// CHECK:STDOUT: inst60000134: symbolic_constant600000C0 -// CHECK:STDOUT: inst60000135: symbolic_constant600000BF -// CHECK:STDOUT: inst60000136: symbolic_constant600000F9 -// CHECK:STDOUT: inst60000137: symbolic_constant600000FA -// CHECK:STDOUT: inst60000138: symbolic_constant600000FB -// CHECK:STDOUT: inst60000139: symbolic_constant600000FC -// CHECK:STDOUT: inst6000013A: symbolic_constant600000FD +// CHECK:STDOUT: inst6000012E: symbolic_constant600000F1 +// CHECK:STDOUT: inst6000012F: symbolic_constant600000F2 +// CHECK:STDOUT: inst60000130: symbolic_constant600000F3 +// CHECK:STDOUT: inst60000131: symbolic_constant600000F4 +// CHECK:STDOUT: inst60000132: symbolic_constant600000F5 +// CHECK:STDOUT: inst60000133: concrete_constant(inst60000133) +// CHECK:STDOUT: inst60000134: concrete_constant(inst60000134) +// CHECK:STDOUT: inst60000135: concrete_constant(inst60000135) +// CHECK:STDOUT: inst60000136: symbolic_constant600000B2 +// CHECK:STDOUT: inst60000137: concrete_constant(inst6000004A) +// CHECK:STDOUT: inst60000138: symbolic_constant600000C5 +// CHECK:STDOUT: inst60000139: symbolic_constant600000C4 +// CHECK:STDOUT: inst6000013A: symbolic_constant600000C3 // CHECK:STDOUT: inst6000013B: symbolic_constant600000FE // CHECK:STDOUT: inst6000013C: symbolic_constant600000FF // CHECK:STDOUT: inst6000013D: symbolic_constant60000100 // CHECK:STDOUT: inst6000013E: symbolic_constant60000101 -// CHECK:STDOUT: inst6000013F: symbolic_constant60000103 -// CHECK:STDOUT: inst60000140: symbolic_constant60000104 -// CHECK:STDOUT: inst60000141: symbolic_constant60000107 -// CHECK:STDOUT: inst60000142: symbolic_constant60000106 -// CHECK:STDOUT: inst60000143: symbolic_constant60000107 +// CHECK:STDOUT: inst6000013F: symbolic_constant60000102 +// CHECK:STDOUT: inst60000140: symbolic_constant60000103 +// CHECK:STDOUT: inst60000141: symbolic_constant60000104 +// CHECK:STDOUT: inst60000142: symbolic_constant60000105 +// CHECK:STDOUT: inst60000143: symbolic_constant60000106 // CHECK:STDOUT: inst60000144: symbolic_constant60000108 // CHECK:STDOUT: inst60000145: symbolic_constant60000109 -// CHECK:STDOUT: inst60000146: symbolic_constant6000010A +// CHECK:STDOUT: inst60000146: symbolic_constant6000010C // CHECK:STDOUT: inst60000147: symbolic_constant6000010B -// CHECK:STDOUT: inst60000148: symbolic_constant6000010F -// CHECK:STDOUT: inst60000149: symbolic_constant6000010C -// CHECK:STDOUT: inst6000014A: symbolic_constant6000010D -// CHECK:STDOUT: inst6000014B: symbolic_constant6000010E -// CHECK:STDOUT: inst6000014C: symbolic_constant6000010F +// CHECK:STDOUT: inst60000148: symbolic_constant6000010C +// CHECK:STDOUT: inst60000149: symbolic_constant6000010D +// CHECK:STDOUT: inst6000014A: symbolic_constant6000010E +// CHECK:STDOUT: inst6000014B: symbolic_constant6000010F +// CHECK:STDOUT: inst6000014C: symbolic_constant60000110 +// CHECK:STDOUT: inst6000014D: symbolic_constant60000114 // CHECK:STDOUT: inst6000014E: symbolic_constant60000111 -// CHECK:STDOUT: inst6000014F: symbolic_constant60000110 -// CHECK:STDOUT: inst60000150: symbolic_constant60000111 -// CHECK:STDOUT: inst60000152: symbolic_constant60000011 -// CHECK:STDOUT: inst60000156: concrete_constant(inst60000026) -// CHECK:STDOUT: inst60000157: concrete_constant(inst60000026) +// CHECK:STDOUT: inst6000014F: symbolic_constant60000112 +// CHECK:STDOUT: inst60000150: symbolic_constant60000113 +// CHECK:STDOUT: inst60000151: symbolic_constant60000114 +// CHECK:STDOUT: inst60000153: symbolic_constant60000116 +// CHECK:STDOUT: inst60000154: symbolic_constant60000115 +// CHECK:STDOUT: inst60000155: symbolic_constant60000116 +// CHECK:STDOUT: inst60000157: symbolic_constant60000011 +// CHECK:STDOUT: inst6000015B: concrete_constant(inst60000026) +// CHECK:STDOUT: inst6000015C: concrete_constant(inst60000026) // CHECK:STDOUT: symbolic_constants: // CHECK:STDOUT: symbolic_constant0: {inst: inst60000013, generic: generic, index: generic_inst, kind: self} // CHECK:STDOUT: symbolic_constant1: {inst: inst60000015, generic: generic, index: generic_inst, kind: checked} @@ -1064,256 +1080,261 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: symbolic_constant60000015: {inst: inst60000056, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant60000016: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant60000017: {inst: inst6000004B, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000018: {inst: inst6000004B, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000019: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001A: {inst: inst60000056, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001B: {inst: inst60000062, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000018: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000019: {inst: inst6000004B, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001A: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001B: {inst: inst60000056, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant6000001C: {inst: inst60000063, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant6000001D: {inst: inst60000064, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst60000067, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000067, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000069, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000065, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst60000065, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000068, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000068, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant60000022: {inst: inst6000006A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000023: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000024: {inst: inst60000069, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000025: {inst: inst6000006B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000026: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000028: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst6000006B, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000075, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000030: {inst: inst60000076, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000023: {inst: inst6000006B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000024: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000025: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000026: {inst: inst6000006C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000027: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000028: {inst: inst60000065, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000065, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000065, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000030: {inst: inst6000006C, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} // CHECK:STDOUT: symbolic_constant60000031: {inst: inst60000077, generic: generic, index: generic_inst, kind: checked} // CHECK:STDOUT: symbolic_constant60000032: {inst: inst60000078, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000079, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000035: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000036: {inst: inst60000076, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000075, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000038: {inst: inst6000007A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000039: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst6000007B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst6000007B, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst6000007B, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000075, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000076, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000067, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000049: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000069, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst600000A1, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst600000A1, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000050: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000051: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000079, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000034: {inst: inst6000007A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000035: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000036: {inst: inst6000007B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000038: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst6000007C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst6000007C, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst6000007D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst6000007D, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst6000007D, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst6000007C, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000077, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000078, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000079, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000043: {inst: inst6000007A, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000065, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000065, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000068, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst6000006A, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst600000A3, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000050: {inst: inst600000A3, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000051: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} // CHECK:STDOUT: symbolic_constant60000052: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000053: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000054: {inst: inst600000A1, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000055: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000056: {inst: inst600000AA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000057: {inst: inst600000AB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000058: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000059: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005D: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000060: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000061: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000062: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000063: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000C1, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000065: {inst: inst600000C2, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000066: {inst: inst600000C3, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000C6, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000069: {inst: inst600000C6, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst600000C8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000053: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000054: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000055: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000056: {inst: inst600000A3, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000057: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000058: {inst: inst600000AC, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000059: {inst: inst600000AD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst600000AC, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005D: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000060: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000061: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000062: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000063: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000AC, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000065: {inst: inst600000AD, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000066: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000C4, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000C5, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000069: {inst: inst600000C6, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst600000C6, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} // CHECK:STDOUT: symbolic_constant6000006B: {inst: inst600000C9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000C9, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000C8, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst600000CB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000CC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000CC, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000C3, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000073: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000074: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000075: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000076: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000077: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000078: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000079: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000C3, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000CC, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000D9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000DA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000DB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000DC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000DC, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant60000083: {inst: inst600000DD, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000084: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000DA, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000DE, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000088: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000089: {inst: inst60000078, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst60000076, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst60000075, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst6000007A, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000DF, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000DF, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000090: {inst: inst600000DF, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000091: {inst: inst6000007A, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000092: {inst: inst60000075, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000093: {inst: inst60000076, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000094: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000095: {inst: inst60000078, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000DA, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000DB, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000DC, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000C6, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000C9, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000C8, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000C9, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000FC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000FD, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000FE, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst60000101, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst60000101, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst60000103, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst60000104, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst60000104, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst60000103, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000106, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000107, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst60000107, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst600000FE, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst600000C2, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst600000C2, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst600000FE, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000107, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000118, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst60000119, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst6000011A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst6000011A, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst6000011B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst60000119, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst6000011C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000DC, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst600000DB, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst600000DA, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst600000D9, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst600000DE, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst60000078, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst60000076, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000075, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst6000007A, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000011D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst6000011D, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst6000011D, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst6000007A, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst60000075, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000076, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst60000078, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst600000DE, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst600000D9, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst600000DA, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst600000DB, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst600000DC, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst60000119, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst6000011A, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst600000C2, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst60000106, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst60000106, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst600000C2, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000100: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000101: {inst: inst60000101, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant60000102: {inst: inst60000104, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000103: {inst: inst60000103, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000104: {inst: inst60000104, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000105: {inst: inst600000A1, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000106: {inst: inst60000142, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000107: {inst: inst60000142, generic: generic60000000, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000108: {inst: inst60000144, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000109: {inst: inst60000144, generic: generic60000000, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst60000146, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000C9, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000CB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst600000CC, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000CC, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000CE, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000CF, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000073: {inst: inst600000CF, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000C6, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000075: {inst: inst600000C5, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000076: {inst: inst600000C4, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000077: {inst: inst60000064, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000078: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000C4, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000C6, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst60000064, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000C4, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000C5, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000C6, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000CF, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000DD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000083: {inst: inst600000DE, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000084: {inst: inst600000DF, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000E0, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000E0, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000E1, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000088: {inst: inst600000DF, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant60000089: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst600000DD, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst600000E2, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000E2, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst6000007A, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst60000079, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst60000078, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000090: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000091: {inst: inst6000007C, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000092: {inst: inst600000E3, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000093: {inst: inst600000E3, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000094: {inst: inst600000E3, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000095: {inst: inst6000007C, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000096: {inst: inst60000077, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000097: {inst: inst60000078, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000098: {inst: inst60000079, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000099: {inst: inst6000007A, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000E2, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000DD, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000DE, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst600000DF, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000E0, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000C6, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst600000C5, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000064, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst600000CE, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst600000C4, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000C4, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000CE, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst60000064, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000C5, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000C6, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000C9, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000CC, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000CC, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst60000100, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst60000101, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst60000102, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst60000105, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst60000105, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000107, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000108, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst60000108, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst60000107, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst6000010A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst6000010B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst6000010B, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst60000102, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000101, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst60000100, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000C5, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst600000C4, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000064, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000C4, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000102, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000064, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst600000C4, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst600000C5, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000100, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst60000101, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst60000102, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst6000010B, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst6000011C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst6000011D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst6000011E, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst6000011F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst6000011F, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst60000120, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst6000011E, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst6000011D, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst60000121, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst60000121, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst600000E0, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst600000DF, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst600000DE, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst600000DD, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst600000E2, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000007A, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst60000079, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst60000078, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst6000007C, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000122, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst60000122, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst60000122, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst6000007C, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst60000077, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst60000078, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst60000079, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst6000007A, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst600000E2, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst600000DD, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst600000DE, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst600000DF, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst600000E0, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst60000121, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst6000011C, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst6000011D, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst6000011E, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst6000011F, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst60000101, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst600000C5, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000064, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst6000010A, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst600000C4, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst600000C4, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000100: {inst: inst60000100, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000101: {inst: inst6000010A, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000102: {inst: inst60000064, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000103: {inst: inst600000C5, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000104: {inst: inst60000101, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000105: {inst: inst60000102, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000106: {inst: inst60000105, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant60000107: {inst: inst60000108, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000108: {inst: inst60000107, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000109: {inst: inst60000108, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst600000A3, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} // CHECK:STDOUT: symbolic_constant6000010B: {inst: inst60000147, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst60000149, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst60000146, generic: generic60000000, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst60000147, generic: generic60000000, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst60000149, generic: generic60000000, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000110: {inst: inst6000014F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000111: {inst: inst6000014F, generic: generic60000000, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst60000147, generic: generic60000000, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst60000149, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst60000149, generic: generic60000000, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst6000014B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000110: {inst: inst6000014C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000111: {inst: inst6000014E, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000112: {inst: inst6000014B, generic: generic60000000, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000113: {inst: inst6000014C, generic: generic60000000, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000114: {inst: inst6000014E, generic: generic60000000, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000115: {inst: inst60000154, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000116: {inst: inst60000154, generic: generic60000000, index: generic_inst_in_def7, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: @@ -1332,22 +1353,22 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 10: inst60000059 // CHECK:STDOUT: 11: inst6000005A // CHECK:STDOUT: 12: inst6000005B -// CHECK:STDOUT: 13: inst60000060 +// CHECK:STDOUT: 13: inst6000005C // CHECK:STDOUT: 14: inst60000061 -// CHECK:STDOUT: 15: inst60000065 +// CHECK:STDOUT: 15: inst60000062 // CHECK:STDOUT: 16: inst60000066 -// CHECK:STDOUT: 17: inst60000068 -// CHECK:STDOUT: 18: inst6000006C +// CHECK:STDOUT: 17: inst60000067 +// CHECK:STDOUT: 18: inst60000069 // CHECK:STDOUT: 19: inst6000006D // CHECK:STDOUT: 20: inst6000006E // CHECK:STDOUT: 21: inst6000006F // CHECK:STDOUT: 22: inst60000070 -// CHECK:STDOUT: 23: inst60000083 -// CHECK:STDOUT: 24: inst60000084 +// CHECK:STDOUT: 23: inst60000071 +// CHECK:STDOUT: 24: inst60000072 // CHECK:STDOUT: 25: inst60000085 // CHECK:STDOUT: 26: inst60000086 -// CHECK:STDOUT: 27: inst6000008D -// CHECK:STDOUT: 28: inst6000008E +// CHECK:STDOUT: 27: inst60000087 +// CHECK:STDOUT: 28: inst60000088 // CHECK:STDOUT: 29: inst6000008F // CHECK:STDOUT: 30: inst60000090 // CHECK:STDOUT: 31: inst60000091 @@ -1366,19 +1387,19 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 44: inst6000009E // CHECK:STDOUT: 45: inst6000009F // CHECK:STDOUT: 46: inst600000A0 -// CHECK:STDOUT: 47: inst600000A2 -// CHECK:STDOUT: 48: inst600000A3 +// CHECK:STDOUT: 47: inst600000A1 +// CHECK:STDOUT: 48: inst600000A2 // CHECK:STDOUT: 49: inst600000A4 // CHECK:STDOUT: 50: inst600000A5 -// CHECK:STDOUT: 51: inst600000A9 -// CHECK:STDOUT: 52: inst600000AC -// CHECK:STDOUT: 53: inst600000AD +// CHECK:STDOUT: 51: inst600000A6 +// CHECK:STDOUT: 52: inst600000A7 +// CHECK:STDOUT: 53: inst600000AB // CHECK:STDOUT: 54: inst600000AE // CHECK:STDOUT: 55: inst600000AF // CHECK:STDOUT: 56: inst600000B0 -// CHECK:STDOUT: 57: inst600000B7 -// CHECK:STDOUT: 58: inst600000B8 -// CHECK:STDOUT: 59: inst600000B9 +// CHECK:STDOUT: 57: inst600000B1 +// CHECK:STDOUT: 58: inst600000B2 +// CHECK:STDOUT: 59: inst600000B3 // CHECK:STDOUT: 60: inst600000BA // CHECK:STDOUT: 61: inst600000BB // CHECK:STDOUT: 62: inst600000BC @@ -1386,41 +1407,46 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 64: inst600000BE // CHECK:STDOUT: 65: inst600000BF // CHECK:STDOUT: 66: inst600000C0 -// CHECK:STDOUT: 67: inst600000C4 -// CHECK:STDOUT: 68: inst600000C5 -// CHECK:STDOUT: 69: inst600000C7 -// CHECK:STDOUT: 70: inst600000CD -// CHECK:STDOUT: 71: inst600000CE -// CHECK:STDOUT: 72: inst600000CF +// CHECK:STDOUT: 67: inst600000C1 +// CHECK:STDOUT: 68: inst600000C2 +// CHECK:STDOUT: 69: inst600000C3 +// CHECK:STDOUT: 70: inst600000C7 +// CHECK:STDOUT: 71: inst600000C8 +// CHECK:STDOUT: 72: inst600000CA // CHECK:STDOUT: 73: inst600000D0 // CHECK:STDOUT: 74: inst600000D1 // CHECK:STDOUT: 75: inst600000D2 -// CHECK:STDOUT: 76: inst600000EB -// CHECK:STDOUT: 77: inst600000EC -// CHECK:STDOUT: 78: inst600000ED -// CHECK:STDOUT: 79: inst600000EE +// CHECK:STDOUT: 76: inst600000D3 +// CHECK:STDOUT: 77: inst600000D4 +// CHECK:STDOUT: 78: inst600000D5 +// CHECK:STDOUT: 79: inst600000D6 // CHECK:STDOUT: 80: inst600000EF // CHECK:STDOUT: 81: inst600000F0 -// CHECK:STDOUT: 82: inst600000FA -// CHECK:STDOUT: 83: inst600000FB -// CHECK:STDOUT: 84: inst600000FF -// CHECK:STDOUT: 85: inst60000100 -// CHECK:STDOUT: 86: inst60000102 -// CHECK:STDOUT: 87: inst60000108 -// CHECK:STDOUT: 88: inst60000109 -// CHECK:STDOUT: 89: inst6000010A -// CHECK:STDOUT: 90: inst6000010B +// CHECK:STDOUT: 82: inst600000F1 +// CHECK:STDOUT: 83: inst600000F2 +// CHECK:STDOUT: 84: inst600000F3 +// CHECK:STDOUT: 85: inst600000F4 +// CHECK:STDOUT: 86: inst600000FE +// CHECK:STDOUT: 87: inst600000FF +// CHECK:STDOUT: 88: inst60000103 +// CHECK:STDOUT: 89: inst60000104 +// CHECK:STDOUT: 90: inst60000106 // CHECK:STDOUT: 91: inst6000010C // CHECK:STDOUT: 92: inst6000010D // CHECK:STDOUT: 93: inst6000010E -// CHECK:STDOUT: 94: inst6000012E -// CHECK:STDOUT: 95: inst6000012F -// CHECK:STDOUT: 96: inst60000130 -// CHECK:STDOUT: 97: inst60000131 -// CHECK:STDOUT: 98: inst60000132 +// CHECK:STDOUT: 94: inst6000010F +// CHECK:STDOUT: 95: inst60000110 +// CHECK:STDOUT: 96: inst60000111 +// CHECK:STDOUT: 97: inst60000112 +// CHECK:STDOUT: 98: inst60000113 // CHECK:STDOUT: 99: inst60000133 // CHECK:STDOUT: 100: inst60000134 // CHECK:STDOUT: 101: inst60000135 +// CHECK:STDOUT: 102: inst60000136 +// CHECK:STDOUT: 103: inst60000137 +// CHECK:STDOUT: 104: inst60000138 +// CHECK:STDOUT: 105: inst60000139 +// CHECK:STDOUT: 106: inst6000013A // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: // CHECK:STDOUT: 0: inst60000012 @@ -1453,15 +1479,17 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 0: inst6000001C // CHECK:STDOUT: 1: inst60000024 // CHECK:STDOUT: inst_block6000000F: +// CHECK:STDOUT: 0: inst60000033 +// CHECK:STDOUT: inst_block60000010: // CHECK:STDOUT: 0: inst60000034 // CHECK:STDOUT: 1: inst60000036 -// CHECK:STDOUT: inst_block60000010: +// CHECK:STDOUT: inst_block60000011: // CHECK:STDOUT: 0: inst60000018 // CHECK:STDOUT: 1: inst6000001F // CHECK:STDOUT: 2: inst60000021 // CHECK:STDOUT: 3: inst60000031 // CHECK:STDOUT: 4: inst60000033 -// CHECK:STDOUT: inst_block60000011: +// CHECK:STDOUT: inst_block60000012: // CHECK:STDOUT: 0: inst60000022 // CHECK:STDOUT: 1: inst60000023 // CHECK:STDOUT: 2: inst60000025 @@ -1475,398 +1503,408 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 10: inst6000001D // CHECK:STDOUT: 11: inst60000036 // CHECK:STDOUT: 12: inst60000037 -// CHECK:STDOUT: inst_block60000012: -// CHECK:STDOUT: 0: inst60000014 // CHECK:STDOUT: inst_block60000013: -// CHECK:STDOUT: 0: inst60000015 +// CHECK:STDOUT: 0: inst60000014 // CHECK:STDOUT: inst_block60000014: +// CHECK:STDOUT: 0: inst60000015 +// CHECK:STDOUT: inst_block60000015: // CHECK:STDOUT: 0: inst60000016 // CHECK:STDOUT: 1: inst6000001C // CHECK:STDOUT: 2: inst60000020 // CHECK:STDOUT: 3: inst6000002A // CHECK:STDOUT: 4: inst6000002F // CHECK:STDOUT: 5: inst60000032 -// CHECK:STDOUT: inst_block60000015: +// CHECK:STDOUT: inst_block60000016: // CHECK:STDOUT: 0: inst60000015 // CHECK:STDOUT: 1: inst6000001B // CHECK:STDOUT: 2: inst6000001E // CHECK:STDOUT: 3: inst60000029 // CHECK:STDOUT: 4: inst6000002D // CHECK:STDOUT: 5: inst60000030 -// CHECK:STDOUT: inst_block60000016: -// CHECK:STDOUT: 0: inst60000042 -// CHECK:STDOUT: 1: inst60000043 -// CHECK:STDOUT: 2: inst60000044 -// CHECK:STDOUT: 3: inst60000148 -// CHECK:STDOUT: 4: inst6000014D -// CHECK:STDOUT: 5: inst6000014E -// CHECK:STDOUT: 6: inst60000151 -// CHECK:STDOUT: 7: inst60000153 -// CHECK:STDOUT: 8: inst60000046 -// CHECK:STDOUT: 9: inst60000154 -// CHECK:STDOUT: 10: inst60000155 -// CHECK:STDOUT: 11: inst60000156 -// CHECK:STDOUT: 12: inst60000157 -// CHECK:STDOUT: 13: inst60000158 -// CHECK:STDOUT: 14: inst60000159 -// CHECK:STDOUT: 15: inst6000015A // CHECK:STDOUT: inst_block60000017: // CHECK:STDOUT: 0: inst60000042 // CHECK:STDOUT: 1: inst60000043 +// CHECK:STDOUT: 2: inst60000044 +// CHECK:STDOUT: 3: inst6000014D +// CHECK:STDOUT: 4: inst60000152 +// CHECK:STDOUT: 5: inst60000153 +// CHECK:STDOUT: 6: inst60000156 +// CHECK:STDOUT: 7: inst60000158 +// CHECK:STDOUT: 8: inst60000046 +// CHECK:STDOUT: 9: inst60000159 +// CHECK:STDOUT: 10: inst6000015A +// CHECK:STDOUT: 11: inst6000015B +// CHECK:STDOUT: 12: inst6000015C +// CHECK:STDOUT: 13: inst6000015D +// CHECK:STDOUT: 14: inst6000015E +// CHECK:STDOUT: 15: inst6000015F // CHECK:STDOUT: inst_block60000018: -// CHECK:STDOUT: 0: inst6000004E +// CHECK:STDOUT: 0: inst60000042 +// CHECK:STDOUT: 1: inst60000043 // CHECK:STDOUT: inst_block60000019: -// CHECK:STDOUT: 0: inst6000005A +// CHECK:STDOUT: 0: inst6000004E // CHECK:STDOUT: inst_block6000001A: -// CHECK:STDOUT: 0: inst6000005B +// CHECK:STDOUT: 0: inst6000005A // CHECK:STDOUT: inst_block6000001B: -// CHECK:STDOUT: 0: inst6000005C -// CHECK:STDOUT: 1: inst6000005D -// CHECK:STDOUT: 2: inst6000005E +// CHECK:STDOUT: 0: inst60000058 // CHECK:STDOUT: inst_block6000001C: -// CHECK:STDOUT: 0: inst6000004B +// CHECK:STDOUT: 0: inst6000005C // CHECK:STDOUT: inst_block6000001D: +// CHECK:STDOUT: 0: inst6000005D +// CHECK:STDOUT: 1: inst6000005E +// CHECK:STDOUT: 2: inst6000005F +// CHECK:STDOUT: inst_block6000001E: +// CHECK:STDOUT: 0: inst6000004B +// CHECK:STDOUT: inst_block6000001F: // CHECK:STDOUT: 0: inst6000004B // CHECK:STDOUT: 1: inst60000055 // CHECK:STDOUT: 2: inst60000056 -// CHECK:STDOUT: inst_block6000001E: -// CHECK:STDOUT: 0: inst60000065 -// CHECK:STDOUT: inst_block6000001F: -// CHECK:STDOUT: 0: inst60000062 // CHECK:STDOUT: inst_block60000020: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst60000064 -// CHECK:STDOUT: 3: inst60000067 +// CHECK:STDOUT: 0: inst60000066 // CHECK:STDOUT: inst_block60000021: -// CHECK:STDOUT: 0: inst60000069 -// CHECK:STDOUT: 1: inst6000006A +// CHECK:STDOUT: 0: inst60000063 // CHECK:STDOUT: inst_block60000022: -// CHECK:STDOUT: 0: inst6000006F +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst60000064 +// CHECK:STDOUT: 2: inst60000065 +// CHECK:STDOUT: 3: inst60000068 // CHECK:STDOUT: inst_block60000023: -// CHECK:STDOUT: 0: inst60000070 +// CHECK:STDOUT: 0: inst6000006A +// CHECK:STDOUT: 1: inst6000006B // CHECK:STDOUT: inst_block60000024: -// CHECK:STDOUT: 0: inst60000071 -// CHECK:STDOUT: 1: inst60000072 -// CHECK:STDOUT: 2: inst60000073 -// CHECK:STDOUT: 3: inst60000074 +// CHECK:STDOUT: 0: inst60000070 // CHECK:STDOUT: inst_block60000025: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst60000079 +// CHECK:STDOUT: 0: inst6000006E // CHECK:STDOUT: inst_block60000026: -// CHECK:STDOUT: 0: inst60000071 +// CHECK:STDOUT: 0: inst60000072 // CHECK:STDOUT: inst_block60000027: -// CHECK:STDOUT: 0: inst6000007C -// CHECK:STDOUT: 1: inst6000007D -// CHECK:STDOUT: 2: inst6000007E -// CHECK:STDOUT: 3: inst6000007F -// CHECK:STDOUT: 4: inst60000080 -// CHECK:STDOUT: 5: inst60000081 +// CHECK:STDOUT: 0: inst60000073 +// CHECK:STDOUT: 1: inst60000074 +// CHECK:STDOUT: 2: inst60000075 +// CHECK:STDOUT: 3: inst60000076 // CHECK:STDOUT: inst_block60000028: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst60000064 -// CHECK:STDOUT: 3: inst6000006B +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst60000064 +// CHECK:STDOUT: 2: inst6000007B // CHECK:STDOUT: inst_block60000029: -// CHECK:STDOUT: 0: inst60000083 +// CHECK:STDOUT: 0: inst60000073 // CHECK:STDOUT: inst_block6000002A: -// CHECK:STDOUT: 0: inst60000086 +// CHECK:STDOUT: 0: inst6000007E +// CHECK:STDOUT: 1: inst6000007F +// CHECK:STDOUT: 2: inst60000080 +// CHECK:STDOUT: 3: inst60000081 +// CHECK:STDOUT: 4: inst60000082 +// CHECK:STDOUT: 5: inst60000083 // CHECK:STDOUT: inst_block6000002B: -// CHECK:STDOUT: 0: inst60000087 +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst60000064 +// CHECK:STDOUT: 2: inst60000065 +// CHECK:STDOUT: 3: inst6000006C // CHECK:STDOUT: inst_block6000002C: -// CHECK:STDOUT: 0: inst60000087 -// CHECK:STDOUT: 1: inst60000088 -// CHECK:STDOUT: 2: inst60000089 -// CHECK:STDOUT: 3: inst6000008A +// CHECK:STDOUT: 0: inst60000085 // CHECK:STDOUT: inst_block6000002D: -// CHECK:STDOUT: 0: inst60000087 +// CHECK:STDOUT: 0: inst60000088 // CHECK:STDOUT: inst_block6000002E: -// CHECK:STDOUT: 0: inst6000008B -// CHECK:STDOUT: 1: inst6000008C +// CHECK:STDOUT: 0: inst60000089 // CHECK:STDOUT: inst_block6000002F: -// CHECK:STDOUT: 0: inst6000009F +// CHECK:STDOUT: 0: inst60000089 +// CHECK:STDOUT: 1: inst6000008A +// CHECK:STDOUT: 2: inst6000008B +// CHECK:STDOUT: 3: inst6000008C // CHECK:STDOUT: inst_block60000030: -// CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst600000A1 +// CHECK:STDOUT: 0: inst60000089 // CHECK:STDOUT: inst_block60000031: -// CHECK:STDOUT: 0: inst600000A2 +// CHECK:STDOUT: 0: inst6000008D +// CHECK:STDOUT: 1: inst6000008E // CHECK:STDOUT: inst_block60000032: -// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: 0: inst600000A1 // CHECK:STDOUT: inst_block60000033: -// CHECK:STDOUT: 0: inst600000A6 -// CHECK:STDOUT: inst_block60000034: -// CHECK:STDOUT: 0: inst600000A6 -// CHECK:STDOUT: 1: inst600000A7 -// CHECK:STDOUT: 2: inst600000A8 -// CHECK:STDOUT: inst_block60000035: -// CHECK:STDOUT: 0: inst600000AF -// CHECK:STDOUT: inst_block60000036: -// CHECK:STDOUT: 0: inst600000B0 -// CHECK:STDOUT: inst_block60000037: -// CHECK:STDOUT: 0: inst600000B1 -// CHECK:STDOUT: 1: inst600000B2 -// CHECK:STDOUT: 2: inst600000B3 -// CHECK:STDOUT: inst_block60000038: // CHECK:STDOUT: 0: inst60000015 // CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst6000001E +// CHECK:STDOUT: 2: inst600000A3 +// CHECK:STDOUT: inst_block60000034: +// CHECK:STDOUT: 0: inst600000A4 +// CHECK:STDOUT: inst_block60000035: +// CHECK:STDOUT: 0: inst600000A7 +// CHECK:STDOUT: inst_block60000036: +// CHECK:STDOUT: 0: inst600000A8 +// CHECK:STDOUT: inst_block60000037: +// CHECK:STDOUT: 0: inst600000A8 +// CHECK:STDOUT: 1: inst600000A9 +// CHECK:STDOUT: 2: inst600000AA +// CHECK:STDOUT: inst_block60000038: +// CHECK:STDOUT: 0: inst600000B1 // CHECK:STDOUT: inst_block60000039: -// CHECK:STDOUT: 0: inst600000A6 +// CHECK:STDOUT: 0: inst600000AF // CHECK:STDOUT: inst_block6000003A: +// CHECK:STDOUT: 0: inst600000B3 +// CHECK:STDOUT: inst_block6000003B: // CHECK:STDOUT: 0: inst600000B4 // CHECK:STDOUT: 1: inst600000B5 // CHECK:STDOUT: 2: inst600000B6 -// CHECK:STDOUT: inst_block6000003B: -// CHECK:STDOUT: 0: inst60000063 -// CHECK:STDOUT: 1: inst600000C2 // CHECK:STDOUT: inst_block6000003C: -// CHECK:STDOUT: 0: inst600000C4 +// CHECK:STDOUT: 0: inst60000015 +// CHECK:STDOUT: 1: inst6000001B +// CHECK:STDOUT: 2: inst6000001E // CHECK:STDOUT: inst_block6000003D: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 +// CHECK:STDOUT: 0: inst600000A8 // CHECK:STDOUT: inst_block6000003E: +// CHECK:STDOUT: 0: inst600000B7 +// CHECK:STDOUT: 1: inst600000B8 +// CHECK:STDOUT: 2: inst600000B9 +// CHECK:STDOUT: inst_block6000003F: +// CHECK:STDOUT: 0: inst60000064 +// CHECK:STDOUT: 1: inst600000C5 +// CHECK:STDOUT: inst_block60000040: +// CHECK:STDOUT: 0: inst600000C7 +// CHECK:STDOUT: inst_block60000041: +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst600000C4 +// CHECK:STDOUT: inst_block60000042: // CHECK:STDOUT: 0: inst6000004A // CHECK:STDOUT: 1: inst6000004A -// CHECK:STDOUT: inst_block6000003F: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000CB -// CHECK:STDOUT: 3: inst60000063 -// CHECK:STDOUT: 4: inst600000C2 -// CHECK:STDOUT: 5: inst600000C3 -// CHECK:STDOUT: 6: inst600000C6 -// CHECK:STDOUT: inst_block60000040: -// CHECK:STDOUT: 0: inst600000C8 -// CHECK:STDOUT: 1: inst600000C9 -// CHECK:STDOUT: inst_block60000041: -// CHECK:STDOUT: 0: inst600000D0 -// CHECK:STDOUT: inst_block60000042: -// CHECK:STDOUT: 0: inst600000D1 -// CHECK:STDOUT: 1: inst600000D2 // CHECK:STDOUT: inst_block60000043: -// CHECK:STDOUT: 0: inst600000D4 -// CHECK:STDOUT: 1: inst600000D6 +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst600000C4 +// CHECK:STDOUT: 2: inst600000CE +// CHECK:STDOUT: 3: inst60000064 +// CHECK:STDOUT: 4: inst600000C5 +// CHECK:STDOUT: 5: inst600000C6 +// CHECK:STDOUT: 6: inst600000C9 // CHECK:STDOUT: inst_block60000044: -// CHECK:STDOUT: 0: inst600000D3 -// CHECK:STDOUT: 1: inst600000D4 -// CHECK:STDOUT: 2: inst600000D5 -// CHECK:STDOUT: 3: inst600000D6 -// CHECK:STDOUT: 4: inst600000D7 -// CHECK:STDOUT: 5: inst600000D8 +// CHECK:STDOUT: 0: inst600000CB +// CHECK:STDOUT: 1: inst600000CC // CHECK:STDOUT: inst_block60000045: -// CHECK:STDOUT: 0: inst600000C1 -// CHECK:STDOUT: inst_block60000046: -// CHECK:STDOUT: 0: inst600000C1 -// CHECK:STDOUT: 1: inst600000C2 -// CHECK:STDOUT: 2: inst600000DD -// CHECK:STDOUT: inst_block60000047: // CHECK:STDOUT: 0: inst600000D3 -// CHECK:STDOUT: inst_block60000048: +// CHECK:STDOUT: inst_block60000046: +// CHECK:STDOUT: 0: inst600000D1 +// CHECK:STDOUT: inst_block60000047: // CHECK:STDOUT: 0: inst600000D5 +// CHECK:STDOUT: 1: inst600000D6 +// CHECK:STDOUT: inst_block60000048: +// CHECK:STDOUT: 0: inst600000D8 +// CHECK:STDOUT: 1: inst600000DA // CHECK:STDOUT: inst_block60000049: -// CHECK:STDOUT: 0: inst600000E0 -// CHECK:STDOUT: 1: inst600000E1 -// CHECK:STDOUT: 2: inst600000E2 -// CHECK:STDOUT: 3: inst600000E3 -// CHECK:STDOUT: 4: inst600000E4 -// CHECK:STDOUT: 5: inst600000E5 -// CHECK:STDOUT: 6: inst600000E6 -// CHECK:STDOUT: 7: inst600000E7 -// CHECK:STDOUT: 8: inst600000E8 -// CHECK:STDOUT: 9: inst600000E9 -// CHECK:STDOUT: 10: inst600000EA +// CHECK:STDOUT: 0: inst600000D7 +// CHECK:STDOUT: 1: inst600000D8 +// CHECK:STDOUT: 2: inst600000D9 +// CHECK:STDOUT: 3: inst600000DA +// CHECK:STDOUT: 4: inst600000DB +// CHECK:STDOUT: 5: inst600000DC // CHECK:STDOUT: inst_block6000004A: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst600000C1 -// CHECK:STDOUT: 3: inst600000C2 -// CHECK:STDOUT: 4: inst600000C3 -// CHECK:STDOUT: 5: inst600000CC +// CHECK:STDOUT: 0: inst600000C4 // CHECK:STDOUT: inst_block6000004B: -// CHECK:STDOUT: 0: inst600000EC -// CHECK:STDOUT: 1: inst600000EB +// CHECK:STDOUT: 0: inst600000C4 +// CHECK:STDOUT: 1: inst600000C5 +// CHECK:STDOUT: 2: inst600000E1 // CHECK:STDOUT: inst_block6000004C: -// CHECK:STDOUT: 0: inst600000EF -// CHECK:STDOUT: 1: inst600000F0 +// CHECK:STDOUT: 0: inst600000D7 // CHECK:STDOUT: inst_block6000004D: -// CHECK:STDOUT: 0: inst600000F1 -// CHECK:STDOUT: 1: inst600000F2 +// CHECK:STDOUT: 0: inst600000D9 // CHECK:STDOUT: inst_block6000004E: -// CHECK:STDOUT: 0: inst600000F4 -// CHECK:STDOUT: 1: inst600000F5 +// 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: 7: inst600000EB +// CHECK:STDOUT: 8: inst600000EC +// CHECK:STDOUT: 9: inst600000ED +// CHECK:STDOUT: 10: inst600000EE // CHECK:STDOUT: inst_block6000004F: -// CHECK:STDOUT: 0: inst600000F1 -// CHECK:STDOUT: 1: inst600000F2 +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst60000064 +// CHECK:STDOUT: 2: inst600000C4 +// CHECK:STDOUT: 3: inst600000C5 +// CHECK:STDOUT: 4: inst600000C6 +// CHECK:STDOUT: 5: inst600000CF // CHECK:STDOUT: inst_block60000050: -// CHECK:STDOUT: 0: inst600000F1 -// CHECK:STDOUT: 1: inst600000F2 -// CHECK:STDOUT: 2: inst600000F3 -// CHECK:STDOUT: 3: inst600000F4 -// CHECK:STDOUT: 4: inst600000F5 -// CHECK:STDOUT: 5: inst600000F6 -// CHECK:STDOUT: 6: inst600000F7 +// CHECK:STDOUT: 0: inst600000F0 +// CHECK:STDOUT: 1: inst600000EF // CHECK:STDOUT: inst_block60000051: -// CHECK:STDOUT: 0: inst600000F1 -// CHECK:STDOUT: 1: inst600000F2 +// CHECK:STDOUT: 0: inst600000F3 +// CHECK:STDOUT: 1: inst600000F4 // CHECK:STDOUT: inst_block60000052: +// CHECK:STDOUT: 0: inst600000F5 +// CHECK:STDOUT: 1: inst600000F6 +// CHECK:STDOUT: inst_block60000053: // CHECK:STDOUT: 0: inst600000F8 // CHECK:STDOUT: 1: inst600000F9 -// CHECK:STDOUT: inst_block60000053: -// CHECK:STDOUT: 0: inst60000063 -// CHECK:STDOUT: 1: inst600000C2 -// CHECK:STDOUT: 2: inst600000FD // CHECK:STDOUT: inst_block60000054: -// CHECK:STDOUT: 0: inst600000FF +// CHECK:STDOUT: 0: inst600000F5 +// CHECK:STDOUT: 1: inst600000F6 // CHECK:STDOUT: inst_block60000055: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000FC +// CHECK:STDOUT: 0: inst600000F5 +// CHECK:STDOUT: 1: inst600000F6 +// CHECK:STDOUT: 2: inst600000F7 +// CHECK:STDOUT: 3: inst600000F8 +// CHECK:STDOUT: 4: inst600000F9 +// CHECK:STDOUT: 5: inst600000FA +// CHECK:STDOUT: 6: inst600000FB // CHECK:STDOUT: inst_block60000056: +// CHECK:STDOUT: 0: inst600000F5 +// CHECK:STDOUT: 1: inst600000F6 +// CHECK:STDOUT: inst_block60000057: +// CHECK:STDOUT: 0: inst600000FC +// CHECK:STDOUT: 1: inst600000FD +// CHECK:STDOUT: inst_block60000058: +// CHECK:STDOUT: 0: inst60000064 +// CHECK:STDOUT: 1: inst600000C5 +// CHECK:STDOUT: 2: inst60000101 +// CHECK:STDOUT: inst_block60000059: +// CHECK:STDOUT: 0: inst60000103 +// CHECK:STDOUT: inst_block6000005A: +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst600000C4 +// CHECK:STDOUT: 2: inst60000100 +// CHECK:STDOUT: inst_block6000005B: // CHECK:STDOUT: 0: inst6000004A // CHECK:STDOUT: 1: inst6000004A // CHECK:STDOUT: 2: inst6000004A -// CHECK:STDOUT: inst_block60000057: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000FC -// CHECK:STDOUT: 3: inst60000106 -// CHECK:STDOUT: 4: inst60000063 -// CHECK:STDOUT: 5: inst600000C2 -// CHECK:STDOUT: 6: inst600000FD -// CHECK:STDOUT: 7: inst600000FE -// CHECK:STDOUT: 8: inst60000101 -// CHECK:STDOUT: inst_block60000058: -// CHECK:STDOUT: 0: inst60000103 -// CHECK:STDOUT: 1: inst60000104 -// CHECK:STDOUT: inst_block60000059: -// CHECK:STDOUT: 0: inst6000010B -// CHECK:STDOUT: inst_block6000005A: -// CHECK:STDOUT: 0: inst6000010C -// CHECK:STDOUT: 1: inst6000010D -// CHECK:STDOUT: 2: inst6000010E -// CHECK:STDOUT: inst_block6000005B: -// CHECK:STDOUT: 0: inst60000110 -// CHECK:STDOUT: 1: inst60000112 -// CHECK:STDOUT: 2: inst60000114 // CHECK:STDOUT: inst_block6000005C: -// CHECK:STDOUT: 0: inst6000010F -// CHECK:STDOUT: 1: inst60000110 -// CHECK:STDOUT: 2: inst60000111 -// CHECK:STDOUT: 3: inst60000112 -// CHECK:STDOUT: 4: inst60000113 -// CHECK:STDOUT: 5: inst60000114 -// CHECK:STDOUT: 6: inst60000115 -// CHECK:STDOUT: 7: inst60000116 +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst600000C4 +// CHECK:STDOUT: 2: inst60000100 +// CHECK:STDOUT: 3: inst6000010A +// CHECK:STDOUT: 4: inst60000064 +// CHECK:STDOUT: 5: inst600000C5 +// CHECK:STDOUT: 6: inst60000101 +// CHECK:STDOUT: 7: inst60000102 +// CHECK:STDOUT: 8: inst60000105 // CHECK:STDOUT: inst_block6000005D: -// CHECK:STDOUT: 0: inst600000FC +// CHECK:STDOUT: 0: inst60000107 +// CHECK:STDOUT: 1: inst60000108 // CHECK:STDOUT: inst_block6000005E: -// CHECK:STDOUT: 0: inst600000FC -// CHECK:STDOUT: 1: inst600000FD -// CHECK:STDOUT: 2: inst6000011B -// CHECK:STDOUT: inst_block6000005F: // CHECK:STDOUT: 0: inst6000010F +// CHECK:STDOUT: inst_block6000005F: +// CHECK:STDOUT: 0: inst6000010D // CHECK:STDOUT: inst_block60000060: // CHECK:STDOUT: 0: inst60000111 +// CHECK:STDOUT: 1: inst60000112 +// CHECK:STDOUT: 2: inst60000113 // CHECK:STDOUT: inst_block60000061: -// CHECK:STDOUT: 0: inst60000113 +// CHECK:STDOUT: 0: inst60000115 +// CHECK:STDOUT: 1: inst60000117 +// CHECK:STDOUT: 2: inst60000119 // CHECK:STDOUT: inst_block60000062: -// CHECK:STDOUT: 0: inst6000011E -// CHECK:STDOUT: 1: inst6000011F -// CHECK:STDOUT: 2: inst60000120 -// CHECK:STDOUT: 3: inst60000121 -// CHECK:STDOUT: 4: inst60000122 -// CHECK:STDOUT: 5: inst60000123 -// CHECK:STDOUT: 6: inst60000124 -// CHECK:STDOUT: 7: inst60000125 -// CHECK:STDOUT: 8: inst60000126 -// CHECK:STDOUT: 9: inst60000127 -// CHECK:STDOUT: 10: inst60000128 -// CHECK:STDOUT: 11: inst60000129 -// CHECK:STDOUT: 12: inst6000012A -// CHECK:STDOUT: 13: inst6000012B -// CHECK:STDOUT: 14: inst6000012C -// CHECK:STDOUT: 15: inst6000012D +// CHECK:STDOUT: 0: inst60000114 +// CHECK:STDOUT: 1: inst60000115 +// CHECK:STDOUT: 2: inst60000116 +// CHECK:STDOUT: 3: inst60000117 +// CHECK:STDOUT: 4: inst60000118 +// CHECK:STDOUT: 5: inst60000119 +// CHECK:STDOUT: 6: inst6000011A +// CHECK:STDOUT: 7: inst6000011B // CHECK:STDOUT: inst_block60000063: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst600000C1 -// CHECK:STDOUT: 3: inst600000C2 -// CHECK:STDOUT: 4: inst600000FC -// CHECK:STDOUT: 5: inst600000FD -// CHECK:STDOUT: 6: inst600000FE -// CHECK:STDOUT: 7: inst60000107 +// CHECK:STDOUT: 0: inst60000100 // CHECK:STDOUT: inst_block60000064: -// CHECK:STDOUT: 0: inst60000130 -// CHECK:STDOUT: 1: inst6000012F -// CHECK:STDOUT: 2: inst6000012E +// CHECK:STDOUT: 0: inst60000100 +// CHECK:STDOUT: 1: inst60000101 +// CHECK:STDOUT: 2: inst60000120 // CHECK:STDOUT: inst_block60000065: -// CHECK:STDOUT: 0: inst60000133 -// CHECK:STDOUT: 1: inst60000134 -// CHECK:STDOUT: 2: inst60000135 +// CHECK:STDOUT: 0: inst60000114 // CHECK:STDOUT: inst_block60000066: -// CHECK:STDOUT: 0: inst60000136 -// CHECK:STDOUT: 1: inst60000137 -// CHECK:STDOUT: 2: inst60000138 +// CHECK:STDOUT: 0: inst60000116 // CHECK:STDOUT: inst_block60000067: -// CHECK:STDOUT: 0: inst6000013A -// CHECK:STDOUT: 1: inst6000013B -// CHECK:STDOUT: 2: inst6000013C +// CHECK:STDOUT: 0: inst60000118 // CHECK:STDOUT: inst_block60000068: -// CHECK:STDOUT: 0: inst60000136 -// CHECK:STDOUT: 1: inst60000137 -// CHECK:STDOUT: 2: inst60000138 +// CHECK:STDOUT: 0: inst60000123 +// CHECK:STDOUT: 1: inst60000124 +// CHECK:STDOUT: 2: inst60000125 +// CHECK:STDOUT: 3: inst60000126 +// CHECK:STDOUT: 4: inst60000127 +// CHECK:STDOUT: 5: inst60000128 +// CHECK:STDOUT: 6: inst60000129 +// CHECK:STDOUT: 7: inst6000012A +// CHECK:STDOUT: 8: inst6000012B +// CHECK:STDOUT: 9: inst6000012C +// CHECK:STDOUT: 10: inst6000012D +// CHECK:STDOUT: 11: inst6000012E +// CHECK:STDOUT: 12: inst6000012F +// CHECK:STDOUT: 13: inst60000130 +// CHECK:STDOUT: 14: inst60000131 +// CHECK:STDOUT: 15: inst60000132 // CHECK:STDOUT: inst_block60000069: -// CHECK:STDOUT: 0: inst60000136 -// CHECK:STDOUT: 1: inst60000137 -// CHECK:STDOUT: 2: inst60000138 -// CHECK:STDOUT: 3: inst60000139 -// CHECK:STDOUT: 4: inst6000013A -// CHECK:STDOUT: 5: inst6000013B -// CHECK:STDOUT: 6: inst6000013C -// CHECK:STDOUT: 7: inst6000013D -// CHECK:STDOUT: 8: inst6000013E +// CHECK:STDOUT: 0: inst60000063 +// CHECK:STDOUT: 1: inst60000064 +// CHECK:STDOUT: 2: inst600000C4 +// CHECK:STDOUT: 3: inst600000C5 +// CHECK:STDOUT: 4: inst60000100 +// CHECK:STDOUT: 5: inst60000101 +// CHECK:STDOUT: 6: inst60000102 +// CHECK:STDOUT: 7: inst6000010B // CHECK:STDOUT: inst_block6000006A: -// CHECK:STDOUT: 0: inst60000136 -// CHECK:STDOUT: 1: inst60000137 -// CHECK:STDOUT: 2: inst60000138 +// CHECK:STDOUT: 0: inst60000135 +// CHECK:STDOUT: 1: inst60000134 +// CHECK:STDOUT: 2: inst60000133 // CHECK:STDOUT: inst_block6000006B: +// CHECK:STDOUT: 0: inst60000138 +// CHECK:STDOUT: 1: inst60000139 +// CHECK:STDOUT: 2: inst6000013A +// CHECK:STDOUT: inst_block6000006C: +// CHECK:STDOUT: 0: inst6000013B +// CHECK:STDOUT: 1: inst6000013C +// CHECK:STDOUT: 2: inst6000013D +// CHECK:STDOUT: inst_block6000006D: // CHECK:STDOUT: 0: inst6000013F // CHECK:STDOUT: 1: inst60000140 -// CHECK:STDOUT: inst_block6000006C: -// CHECK:STDOUT: 0: inst600000AA -// CHECK:STDOUT: 1: inst600000AB -// CHECK:STDOUT: 2: inst60000040 -// CHECK:STDOUT: inst_block6000006D: -// CHECK:STDOUT: 0: inst60000016 +// CHECK:STDOUT: 2: inst60000141 // CHECK:STDOUT: inst_block6000006E: -// CHECK:STDOUT: 0: inst60000144 +// CHECK:STDOUT: 0: inst6000013B +// CHECK:STDOUT: 1: inst6000013C +// CHECK:STDOUT: 2: inst6000013D // CHECK:STDOUT: inst_block6000006F: -// CHECK:STDOUT: 0: inst60000145 +// CHECK:STDOUT: 0: inst6000013B +// CHECK:STDOUT: 1: inst6000013C +// CHECK:STDOUT: 2: inst6000013D +// CHECK:STDOUT: 3: inst6000013E +// CHECK:STDOUT: 4: inst6000013F +// CHECK:STDOUT: 5: inst60000140 +// CHECK:STDOUT: 6: inst60000141 +// CHECK:STDOUT: 7: inst60000142 +// CHECK:STDOUT: 8: inst60000143 // CHECK:STDOUT: inst_block60000070: -// CHECK:STDOUT: 0: inst60000146 +// CHECK:STDOUT: 0: inst6000013B +// CHECK:STDOUT: 1: inst6000013C +// CHECK:STDOUT: 2: inst6000013D // CHECK:STDOUT: inst_block60000071: -// CHECK:STDOUT: 0: inst60000146 +// CHECK:STDOUT: 0: inst60000144 +// CHECK:STDOUT: 1: inst60000145 +// CHECK:STDOUT: inst_block60000072: +// CHECK:STDOUT: 0: inst600000AC +// CHECK:STDOUT: 1: inst600000AD +// CHECK:STDOUT: 2: inst60000040 +// CHECK:STDOUT: inst_block60000073: +// CHECK:STDOUT: 0: inst60000016 +// CHECK:STDOUT: inst_block60000074: +// CHECK:STDOUT: 0: inst60000149 +// CHECK:STDOUT: inst_block60000075: +// CHECK:STDOUT: 0: inst6000014A +// CHECK:STDOUT: inst_block60000076: +// CHECK:STDOUT: 0: inst6000014B +// CHECK:STDOUT: inst_block60000077: +// CHECK:STDOUT: 0: inst6000014B // CHECK:STDOUT: 1: inst6000001B // CHECK:STDOUT: 2: inst6000001E -// CHECK:STDOUT: inst_block60000072: -// CHECK:STDOUT: 0: inst6000014A -// CHECK:STDOUT: inst_block60000073: +// CHECK:STDOUT: inst_block60000078: +// CHECK:STDOUT: 0: inst6000014F +// CHECK:STDOUT: inst_block60000079: // CHECK:STDOUT: 0: inst60000042 -// CHECK:STDOUT: inst_block60000074: -// CHECK:STDOUT: 0: inst60000154 -// CHECK:STDOUT: 1: inst60000157 -// CHECK:STDOUT: inst_block60000075: +// CHECK:STDOUT: inst_block6000007A: +// CHECK:STDOUT: 0: inst60000159 +// CHECK:STDOUT: 1: inst6000015C +// CHECK:STDOUT: inst_block6000007B: // CHECK:STDOUT: 0: inst6000003E // CHECK:STDOUT: 1: inst60000041 -// CHECK:STDOUT: 2: inst60000143 -// CHECK:STDOUT: 3: inst60000145 -// CHECK:STDOUT: 4: inst6000014A -// CHECK:STDOUT: 5: inst6000014B -// CHECK:STDOUT: 6: inst6000014C -// CHECK:STDOUT: 7: inst60000150 -// CHECK:STDOUT: inst_block60000076: +// CHECK:STDOUT: 2: inst60000148 +// CHECK:STDOUT: 3: inst6000014A +// CHECK:STDOUT: 4: inst6000014F +// CHECK:STDOUT: 5: inst60000150 +// CHECK:STDOUT: 6: inst60000151 +// CHECK:STDOUT: 7: inst60000155 +// CHECK:STDOUT: inst_block6000007C: // CHECK:STDOUT: 0: instE // CHECK:STDOUT: 1: inst6000000F // CHECK:STDOUT: 2: inst60000038 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 986e3d43e35a..a25f07844ed8 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_block6000000A, return_slot_pattern: inst60000022, body: [inst_block6000000D]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000B, return_type_inst_id: inst6000001F, return_patterns_id: inst_block6000000A, body: [inst_block6000000E]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -78,19 +78,19 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: inst60000024: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000012, type: type(TypeType)} // CHECK:STDOUT: inst60000025: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst60000019)} // CHECK:STDOUT: inst60000026: {kind: ReturnSlot, arg0: inst60000019, arg1: inst60000025, type: type(inst60000019)} -// CHECK:STDOUT: inst60000027: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000C, type: type(inst60000028)} +// CHECK:STDOUT: inst60000027: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000D, type: type(inst60000028)} // CHECK:STDOUT: inst60000028: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst60000029: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000028)} // CHECK:STDOUT: inst6000002A: {kind: NameRef, arg0: name1, arg1: inst60000013, type: type(inst6000000F)} // CHECK:STDOUT: inst6000002B: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002C: {kind: TupleLiteral, arg0: inst_block6000000E, type: type(inst60000019)} +// CHECK:STDOUT: inst6000002C: {kind: TupleLiteral, arg0: inst_block6000000F, type: type(inst60000019)} // CHECK:STDOUT: inst6000002D: {kind: TupleAccess, arg0: inst60000026, arg1: element0, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002E: {kind: TupleInit, arg0: inst_block6000000F, arg1: inst6000002D, type: type(inst6000000F)} +// CHECK:STDOUT: inst6000002E: {kind: TupleInit, arg0: inst_block60000010, arg1: inst6000002D, type: type(inst6000000F)} // CHECK:STDOUT: inst6000002F: {kind: Converted, arg0: inst6000002A, arg1: inst6000002E, type: type(inst6000000F)} // CHECK:STDOUT: inst60000030: {kind: TupleAccess, arg0: inst60000026, arg1: element1, type: type(inst6000000F)} // CHECK:STDOUT: inst60000031: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000030, type: type(inst6000000F)} // CHECK:STDOUT: inst60000032: {kind: Converted, arg0: inst6000002B, arg1: inst60000031, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000033: {kind: TupleInit, arg0: inst_block60000010, arg1: inst60000026, type: type(inst60000019)} +// CHECK:STDOUT: inst60000033: {kind: TupleInit, arg0: inst_block60000011, arg1: inst60000026, type: type(inst60000019)} // CHECK:STDOUT: inst60000034: {kind: Converted, arg0: inst6000002C, arg1: inst60000033, type: type(inst60000019)} // CHECK:STDOUT: inst60000035: {kind: ReturnExpr, arg0: inst60000034, arg1: inst60000026} // CHECK:STDOUT: constant_values: @@ -151,14 +151,16 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: 0: inst6000001D // CHECK:STDOUT: 1: inst6000001E // CHECK:STDOUT: inst_block6000000A: +// CHECK:STDOUT: 0: inst60000022 +// CHECK:STDOUT: inst_block6000000B: // CHECK:STDOUT: 0: inst60000023 // CHECK:STDOUT: 1: inst60000025 -// CHECK:STDOUT: inst_block6000000B: +// CHECK:STDOUT: inst_block6000000C: // CHECK:STDOUT: 0: inst60000015 // CHECK:STDOUT: 1: inst60000016 // CHECK:STDOUT: 2: inst60000021 // CHECK:STDOUT: 3: inst60000022 -// CHECK:STDOUT: inst_block6000000C: +// CHECK:STDOUT: inst_block6000000D: // CHECK:STDOUT: 0: inst60000017 // CHECK:STDOUT: 1: inst60000018 // CHECK:STDOUT: 2: inst6000001A @@ -170,7 +172,7 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: 8: inst60000013 // CHECK:STDOUT: 9: inst60000025 // CHECK:STDOUT: 10: inst60000026 -// CHECK:STDOUT: inst_block6000000D: +// CHECK:STDOUT: inst_block6000000E: // CHECK:STDOUT: 0: inst6000002A // CHECK:STDOUT: 1: inst6000002B // CHECK:STDOUT: 2: inst6000002C @@ -183,14 +185,14 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: 9: inst60000033 // CHECK:STDOUT: 10: inst60000034 // CHECK:STDOUT: 11: inst60000035 -// CHECK:STDOUT: inst_block6000000E: +// CHECK:STDOUT: inst_block6000000F: // CHECK:STDOUT: 0: inst6000002A // CHECK:STDOUT: 1: inst6000002B -// CHECK:STDOUT: inst_block6000000F: {} -// CHECK:STDOUT: inst_block60000010: +// CHECK:STDOUT: inst_block60000010: {} +// CHECK:STDOUT: inst_block60000011: // CHECK:STDOUT: 0: inst6000002F // CHECK:STDOUT: 1: inst60000032 -// CHECK:STDOUT: inst_block60000011: +// CHECK:STDOUT: inst_block60000012: // CHECK:STDOUT: 0: instE // CHECK:STDOUT: 1: inst60000027 // CHECK:STDOUT: ... diff --git a/toolchain/check/testdata/class/fail_abstract.carbon b/toolchain/check/testdata/class/fail_abstract.carbon index e845e1bf1aef..77e57de824c2 100644 --- a/toolchain/check/testdata/class/fail_abstract.carbon +++ b/toolchain/check/testdata/class/fail_abstract.carbon @@ -186,9 +186,9 @@ fn CallReturnAbstract() { // CHECK:STDERR: fail_call_abstract_return.carbon:[[@LINE-9]]:1: note: class was declared abstract here [ClassAbstractHere] // CHECK:STDERR: abstract class Abstract { // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_call_abstract_return.carbon:[[@LINE-9]]:21: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_call_abstract_return.carbon:[[@LINE-9]]:24: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnAbstract() -> Abstract; - // CHECK:STDERR: ^~~~~~~~~~~ + // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: ReturnAbstract(); } diff --git a/toolchain/check/testdata/class/fail_incomplete.carbon b/toolchain/check/testdata/class/fail_incomplete.carbon index 4145ca54d191..dfc8536f6995 100644 --- a/toolchain/check/testdata/class/fail_incomplete.carbon +++ b/toolchain/check/testdata/class/fail_incomplete.carbon @@ -45,9 +45,9 @@ fn CallClassFunction() { // CHECK:STDERR: var global_var: Class; -// CHECK:STDERR: fail_forward_decl.carbon:[[@LINE+7]]:24: error: function returns incomplete type `Class` [IncompleteTypeInFunctionReturnType] +// CHECK:STDERR: fail_forward_decl.carbon:[[@LINE+7]]:27: error: function returns incomplete type `Class` [IncompleteTypeInFunctionReturnType] // CHECK:STDERR: fn ConvertFromStruct() -> Class { return {}; } -// CHECK:STDERR: ^~~~~~~~ +// CHECK:STDERR: ^~~~~ // CHECK:STDERR: fail_forward_decl.carbon:[[@LINE-34]]:1: note: class was forward declared here [ClassForwardDeclaredHere] // CHECK:STDERR: class Class; // CHECK:STDERR: ^~~~~~~~~~~~ @@ -76,9 +76,9 @@ fn MemberAccess(p: Class*) -> () { return (*p).n; } -// CHECK:STDERR: fail_forward_decl.carbon:[[@LINE+7]]:20: error: function returns incomplete type `Class` [IncompleteTypeInFunctionReturnType] +// CHECK:STDERR: fail_forward_decl.carbon:[[@LINE+7]]:23: error: function returns incomplete type `Class` [IncompleteTypeInFunctionReturnType] // CHECK:STDERR: fn Copy(p: Class*) -> Class { -// CHECK:STDERR: ^~~~~~~~ +// CHECK:STDERR: ^~~~~ // CHECK:STDERR: fail_forward_decl.carbon:[[@LINE-65]]:1: note: class was forward declared here [ClassForwardDeclaredHere] // CHECK:STDERR: class Class; // CHECK:STDERR: ^~~~~~~~~~~~ @@ -135,9 +135,9 @@ fn CallReturnIncomplete() { // CHECK:STDERR: fail_forward_decl.carbon:[[@LINE-118]]:1: note: class was forward declared here [ClassForwardDeclaredHere] // CHECK:STDERR: class Class; // CHECK:STDERR: ^~~~~~~~~~~~ - // CHECK:STDERR: fail_forward_decl.carbon:[[@LINE-35]]:23: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_forward_decl.carbon:[[@LINE-35]]:26: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnIncomplete() -> Class; - // CHECK:STDERR: ^~~~~~~~ + // CHECK:STDERR: ^~~~~ // CHECK:STDERR: ReturnIncomplete(); } diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 347ef29c07ca..0cb22f779032 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -183,7 +183,7 @@ class Declaration(T:! type); // CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.95d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.c97)] +// CHECK:STDOUT: %require_complete.loc6_36: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_36 (constants.%require_complete.c97)] // CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %Class [symbolic = %require_complete.loc6_22 (constants.%require_complete.3be)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] // CHECK:STDOUT: %.loc7_12.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc7_12.2 (constants.%.892)] diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index 60d77a3f93b5..860dbc580145 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -246,7 +246,7 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %pattern_type.loc13_34: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc13_34 (constants.%pattern_type.c769df.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_34: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc13_34 (constants.%require_complete.91e646.1)] +// CHECK:STDOUT: %require_complete.loc13_37: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc13_37 (constants.%require_complete.91e646.1)] // CHECK:STDOUT: %require_complete.loc13_22: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13_22 (constants.%require_complete.a2422b.1)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.814ce2.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.edd34c.1)] @@ -278,7 +278,7 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %pattern_type.loc17_34: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc17_34 (constants.%pattern_type.c769df.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_34: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc17_34 (constants.%require_complete.91e646.2)] +// CHECK:STDOUT: %require_complete.loc17_37: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc17_37 (constants.%require_complete.91e646.2)] // CHECK:STDOUT: %require_complete.loc17_22: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17_22 (constants.%require_complete.a2422b.2)] // CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.814ce2.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.edd34c.2)] diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 4d75030928e6..c329191ea2a2 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -338,7 +338,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %pattern_type.loc13_32 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_32 => constants.%complete_type.3d0 +// CHECK:STDOUT: %require_complete.loc13_36 => constants.%complete_type.3d0 // CHECK:STDOUT: %require_complete.loc13_22 => constants.%complete_type.1ec // CHECK:STDOUT: %Class.elem => constants.%Class.elem.9ac // CHECK:STDOUT: %.loc15_12.2 => constants.%.ff7 diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 6f7f9816486b..ac2071930bf9 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -261,7 +261,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %pattern_type.loc9_14: type = pattern_type %Inner [symbolic = %pattern_type.loc9_14 (constants.%pattern_type.098)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_14: = require_complete_type %Inner [symbolic = %require_complete.loc9_14 (constants.%require_complete.872)] +// CHECK:STDOUT: %require_complete.loc9_17: = require_complete_type %Inner [symbolic = %require_complete.loc9_17 (constants.%require_complete.872)] // CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_9 (constants.%require_complete.91e)] // CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Outer.F.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.8b0)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.edd)] @@ -400,7 +400,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %pattern_type.loc9_14 => constants.%pattern_type.415 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_14 => constants.%complete_type.54b +// CHECK:STDOUT: %require_complete.loc9_17 => constants.%complete_type.54b // CHECK:STDOUT: %require_complete.loc9_9 => constants.%complete_type.f8a // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.033 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.impl_witness.09c @@ -709,7 +709,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %pattern_type.loc11_23: type = pattern_type %T [symbolic = %pattern_type.loc11_23 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_23: = require_complete_type %T [symbolic = %require_complete.loc11_23 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc11_26: = require_complete_type %T [symbolic = %require_complete.loc11_26 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc11_16: = require_complete_type %C [symbolic = %require_complete.loc11_16 (constants.%require_complete.3bd)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.83d)] // CHECK:STDOUT: %require_complete.loc11_48: = require_complete_type %Inner.type [symbolic = %require_complete.loc11_48 (constants.%require_complete.b33)] @@ -904,7 +904,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %pattern_type.loc11_23 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_23 => constants.%complete_type.f8a +// CHECK:STDOUT: %require_complete.loc11_26 => constants.%complete_type.f8a // CHECK:STDOUT: %require_complete.loc11_16 => constants.%complete_type.357 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.56c // CHECK:STDOUT: %require_complete.loc11_48 => constants.%complete_type.619 diff --git a/toolchain/check/testdata/deduce/array.carbon b/toolchain/check/testdata/deduce/array.carbon index 9b92a26d203e..da326cb3c9cd 100644 --- a/toolchain/check/testdata/deduce/array.carbon +++ b/toolchain/check/testdata/deduce/array.carbon @@ -251,7 +251,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_35: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_35 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ff3)] // CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -318,7 +318,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_35 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ff3 // CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -330,7 +330,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc6_35 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.dd1 // CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } @@ -846,7 +846,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_32 (constants.%pattern_type.51d1c4.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_35: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_35 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %array_type.loc6_29.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.fc9)] // CHECK:STDOUT: %F.specific_fn.loc6_46.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_46.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -913,7 +913,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_35 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.fc9 // CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -925,7 +925,7 @@ fn G() { // CHECK:STDOUT: %pattern_type.loc6_32 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_32 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc6_35 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.8eb // CHECK:STDOUT: %F.specific_fn.loc6_46.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/generic_type.carbon b/toolchain/check/testdata/deduce/generic_type.carbon index 426aa1ff9f74..7696af0c8e6b 100644 --- a/toolchain/check/testdata/deduce/generic_type.carbon +++ b/toolchain/check/testdata/deduce/generic_type.carbon @@ -188,7 +188,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.loc7_6.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25: = require_complete_type %T.loc7_6.1 [symbolic = %require_complete.loc7_25 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc7_28: = require_complete_type %T.loc7_6.1 [symbolic = %require_complete.loc7_28 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc7_17: = require_complete_type %C.loc7_22.1 [symbolic = %require_complete.loc7_17 (constants.%require_complete.e46)] // CHECK:STDOUT: %F.specific_fn.loc7_39.2: = specific_function constants.%F, @F(%T.loc7_6.1) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -226,7 +226,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc7_28 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc7_17 => constants.%require_complete.e46 // CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -244,7 +244,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.510 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_25 => constants.%complete_type +// CHECK:STDOUT: %require_complete.loc7_28 => constants.%complete_type // CHECK:STDOUT: %require_complete.loc7_17 => constants.%complete_type // CHECK:STDOUT: %F.specific_fn.loc7_39.2 => constants.%F.specific_fn.c4a // CHECK:STDOUT: } @@ -612,7 +612,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc13_48: type = pattern_type %tuple.type [symbolic = %pattern_type.loc13_48 (constants.%pattern_type.eee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_48: = require_complete_type %tuple.type [symbolic = %require_complete.loc13_48 (constants.%require_complete.220)] +// CHECK:STDOUT: %require_complete.loc13_56: = require_complete_type %tuple.type [symbolic = %require_complete.loc13_56 (constants.%require_complete.220)] // CHECK:STDOUT: %require_complete.loc13_27: = require_complete_type %Inner.loc13_45.1 [symbolic = %require_complete.loc13_27 (constants.%require_complete.6ae)] // CHECK:STDOUT: %F.specific_fn.loc13_67.2: = specific_function constants.%F, @F(%T.loc13_6.1, %U.loc13_16.1) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.e58)] // CHECK:STDOUT: @@ -665,7 +665,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.eee // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_48 => constants.%require_complete.220 +// CHECK:STDOUT: %require_complete.loc13_56 => constants.%require_complete.220 // CHECK:STDOUT: %require_complete.loc13_27 => constants.%require_complete.6ae // CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.e58 // CHECK:STDOUT: } @@ -698,7 +698,7 @@ fn G() -> i32 { // CHECK:STDOUT: %pattern_type.loc13_48 => constants.%pattern_type.9ec // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_48 => constants.%complete_type.53b +// CHECK:STDOUT: %require_complete.loc13_56 => constants.%complete_type.53b // CHECK:STDOUT: %require_complete.loc13_27 => constants.%complete_type.357 // CHECK:STDOUT: %F.specific_fn.loc13_67.2 => constants.%F.specific_fn.4a7 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/tuple.carbon b/toolchain/check/testdata/deduce/tuple.carbon index 3bb16bfd84b2..21fe21ee178e 100644 --- a/toolchain/check/testdata/deduce/tuple.carbon +++ b/toolchain/check/testdata/deduce/tuple.carbon @@ -176,7 +176,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %pattern_type.loc7_40: type = pattern_type %U.loc7_16.1 [symbolic = %pattern_type.loc7_40 (constants.%pattern_type.946)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40: = require_complete_type %U.loc7_16.1 [symbolic = %require_complete.loc7_40 (constants.%require_complete.441)] +// CHECK:STDOUT: %require_complete.loc7_43: = require_complete_type %U.loc7_16.1 [symbolic = %require_complete.loc7_43 (constants.%require_complete.441)] // CHECK:STDOUT: %require_complete.loc7_30: = require_complete_type %tuple.type [symbolic = %require_complete.loc7_30 (constants.%require_complete.220)] // CHECK:STDOUT: %F.specific_fn.loc7_54.2: = specific_function constants.%F, @F(%T.loc7_6.1, %U.loc7_16.1) [symbolic = %F.specific_fn.loc7_54.2 (constants.%F.specific_fn.e58)] // CHECK:STDOUT: @@ -210,7 +210,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.946 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40 => constants.%require_complete.441 +// CHECK:STDOUT: %require_complete.loc7_43 => constants.%require_complete.441 // CHECK:STDOUT: %require_complete.loc7_30 => constants.%require_complete.220 // CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.e58 // CHECK:STDOUT: } @@ -224,7 +224,7 @@ fn G(pair: (C, D)) -> D { // CHECK:STDOUT: %pattern_type.loc7_40 => constants.%pattern_type.510 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc7_40 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc7_43 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc7_30 => constants.%complete_type.53b // CHECK:STDOUT: %F.specific_fn.loc7_54.2 => constants.%F.specific_fn.4a7 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/deduce/type_operator.carbon b/toolchain/check/testdata/deduce/type_operator.carbon index 6bcf3747cc39..8d47512522dc 100644 --- a/toolchain/check/testdata/deduce/type_operator.carbon +++ b/toolchain/check/testdata/deduce/type_operator.carbon @@ -162,7 +162,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_26: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_26 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] // CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -194,7 +194,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_26 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 // CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -206,7 +206,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc6_26 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.d05 // CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } @@ -311,7 +311,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_29 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.0c1)] // CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -344,7 +344,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_32 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.0c1 // CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -357,7 +357,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.c48 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc6_32 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.247 // CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn.04a // CHECK:STDOUT: } @@ -460,7 +460,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_23 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_23 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_26: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_26 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_20.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.ef1)] // CHECK:STDOUT: %F.specific_fn.loc6_37.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_37.2 (constants.%F.specific_fn.bb1)] // CHECK:STDOUT: @@ -492,7 +492,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_26 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.ef1 // CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.bb1 // CHECK:STDOUT: } @@ -504,7 +504,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_23 => constants.%pattern_type.6af // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_23 => constants.%complete_type.357 +// CHECK:STDOUT: %require_complete.loc6_26 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%complete_type.247 // CHECK:STDOUT: %F.specific_fn.loc6_37.2 => constants.%F.specific_fn.486 // CHECK:STDOUT: } @@ -607,7 +607,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_29: type = pattern_type %T.loc6_6.1 [symbolic = %pattern_type.loc6_29 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_29 (constants.%require_complete.944)] +// CHECK:STDOUT: %require_complete.loc6_32: = require_complete_type %T.loc6_6.1 [symbolic = %require_complete.loc6_32 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc6_17: = require_complete_type %ptr.loc6_26.1 [symbolic = %require_complete.loc6_17 (constants.%require_complete.0c1)] // CHECK:STDOUT: %F.specific_fn.loc6_43.2: = specific_function constants.%F, @F(%T.loc6_6.1) [symbolic = %F.specific_fn.loc6_43.2 (constants.%F.specific_fn)] // CHECK:STDOUT: @@ -637,7 +637,7 @@ fn G(p: C*) -> const C { // CHECK:STDOUT: %pattern_type.loc6_29 => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_29 => constants.%require_complete.944 +// CHECK:STDOUT: %require_complete.loc6_32 => constants.%require_complete.944 // CHECK:STDOUT: %require_complete.loc6_17 => constants.%require_complete.0c1 // CHECK:STDOUT: %F.specific_fn.loc6_43.2 => constants.%F.specific_fn // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index 21d51db5a03c..c9f69faac529 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -486,7 +486,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %pattern_type.loc5_49: type = pattern_type %IntRange [symbolic = %pattern_type.loc5_49 (constants.%pattern_type.95e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_49: = require_complete_type %IntRange [symbolic = %require_complete.loc5_49 (constants.%require_complete.852)] +// CHECK:STDOUT: %require_complete.loc5_52: = require_complete_type %IntRange [symbolic = %require_complete.loc5_52 (constants.%require_complete.852)] // CHECK:STDOUT: %require_complete.loc5_16: = require_complete_type %Int.loc5_28.1 [symbolic = %require_complete.loc5_16 (constants.%require_complete.9019d7.1)] // CHECK:STDOUT: %struct_type.start.end: type = struct_type {.start: @IntRange.Make.%Int.loc5_28.1 (%Int.fc6021.1), .end: @IntRange.Make.%Int.loc5_28.1 (%Int.fc6021.1)} [symbolic = %struct_type.start.end (constants.%struct_type.start.end.ff1)] // CHECK:STDOUT: %.loc6_22.2: require_specific_def_type = require_specific_def @Int.as.Copy.impl(%N) [symbolic = %.loc6_22.2 (constants.%.2e8)] @@ -570,7 +570,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %pattern_type.loc11_47: type = pattern_type %Optional.loc11_75.1 [symbolic = %pattern_type.loc11_47 (constants.%pattern_type.ca4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc11_47: = require_complete_type %Optional.loc11_75.1 [symbolic = %require_complete.loc11_47 (constants.%require_complete.0e6)] +// CHECK:STDOUT: %require_complete.loc11_75: = require_complete_type %Optional.loc11_75.1 [symbolic = %require_complete.loc11_75 (constants.%require_complete.0e6)] // CHECK:STDOUT: %require_complete.loc11_17: = require_complete_type %IntRange [symbolic = %require_complete.loc11_17 (constants.%require_complete.852)] // CHECK:STDOUT: %require_complete.loc11_31: = require_complete_type %ptr.loc11_44.1 [symbolic = %require_complete.loc11_31 (constants.%require_complete.45c)] // CHECK:STDOUT: %require_complete.loc12: = require_complete_type %Int.loc11_43.1 [symbolic = %require_complete.loc12 (constants.%require_complete.9019d7.1)] @@ -824,7 +824,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %pattern_type.loc5_49 => constants.%pattern_type.d16 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_49 => constants.%complete_type.c45 +// CHECK:STDOUT: %require_complete.loc5_52 => constants.%complete_type.c45 // CHECK:STDOUT: %require_complete.loc5_16 => constants.%complete_type.f8a // CHECK:STDOUT: %struct_type.start.end => constants.%struct_type.start.end.d0a // CHECK:STDOUT: %.loc6_22.2 => constants.%.0d3 diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 3eea49861ca1..56b14457f311 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -795,7 +795,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Core.import_ref.966: @AddWith.%AddWith.type (%AddWith.type.552) = import_ref Core//default, loc{{\d+_\d+}}, loaded [symbolic = @AddWith.%Self (constants.%Self.3fe)] // CHECK:STDOUT: %Core.import_ref.928 = import_ref Core//default, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.8af: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.impl_witness] -// CHECK:STDOUT: %Core.import_ref.c8c7cd.1: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] +// CHECK:STDOUT: %Core.import_ref.c8c7cd.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] // CHECK:STDOUT: %Core.import_ref.af3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%AddWith.type.2a3] // CHECK:STDOUT: %Core.import_ref.980: %i32.builtin.as.AddWith.impl.Op.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.AddWith.impl.Op] // CHECK:STDOUT: %AddWith.impl_witness_table = impl_witness_table (%Core.import_ref.980), @i32.builtin.as.AddWith.impl [concrete] @@ -813,7 +813,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %Core.import_ref.8721d7.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = Core.IntLiteral] // CHECK:STDOUT: %Core.import_ref.64f: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.873] // CHECK:STDOUT: %Core.import_ref.614: = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.impl_witness.fb8] -// CHECK:STDOUT: %Core.import_ref.c8c7cd.2: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] +// CHECK:STDOUT: %Core.import_ref.c8c7cd.3: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin] // CHECK:STDOUT: %Core.import_ref.d7b: type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%ImplicitAs.type.7a9] // CHECK:STDOUT: %Core.import_ref.4ae: %i32.builtin.as.ImplicitAs.impl.Convert.type = import_ref Core//default, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.builtin.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.16d = impl_witness_table (%Core.import_ref.4ae), @i32.builtin.as.ImplicitAs.impl [concrete] @@ -940,7 +940,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: witness = imports.%Core.import_ref.931 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: imports.%Core.import_ref.c8c7cd.1 as imports.%Core.import_ref.af3 [from "core.carbon"] { +// CHECK:STDOUT: impl @i32.builtin.as.AddWith.impl: imports.%Core.import_ref.c8c7cd.2 as imports.%Core.import_ref.af3 [from "core.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = imports.%Core.import_ref.8af // CHECK:STDOUT: } @@ -950,7 +950,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: witness = imports.%Core.import_ref.8a9 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: imports.%Core.import_ref.c8c7cd.2 as imports.%Core.import_ref.d7b [from "core.carbon"] { +// CHECK:STDOUT: impl @i32.builtin.as.ImplicitAs.impl: imports.%Core.import_ref.c8c7cd.3 as imports.%Core.import_ref.d7b [from "core.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = imports.%Core.import_ref.614 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon index a442fe3609b8..43640c67fcbe 100644 --- a/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon +++ b/toolchain/check/testdata/function/declaration/fail_import_incomplete_return.carbon @@ -31,9 +31,9 @@ fn Call() { // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-12]]:1: note: class was forward declared here [ClassForwardDeclaredHere] // CHECK:STDERR: class C; // CHECK:STDERR: ^~~~~~~~ - // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-11]]:18: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-11]]:21: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnCUsed() -> C; - // CHECK:STDERR: ^~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: ReturnCUsed(); // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE+10]]:3: error: function returns incomplete type `D` [IncompleteTypeInFunctionReturnType] @@ -42,9 +42,9 @@ fn Call() { // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-22]]:1: note: class was forward declared here [ClassForwardDeclaredHere] // CHECK:STDERR: class D; // CHECK:STDERR: ^~~~~~~~ - // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-20]]:18: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-20]]:21: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnDUsed() -> D; - // CHECK:STDERR: ^~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: ReturnDUsed(); } @@ -66,9 +66,9 @@ fn CallFAndGIncomplete() { // CHECK:STDERR: class C; // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: fail_use_imported.carbon:[[@LINE-10]]:1: in import [InImport] - // CHECK:STDERR: fail_incomplete_return.carbon:7:20: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_incomplete_return.carbon:7:23: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnCUnused() -> C; - // CHECK:STDERR: ^~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: ReturnCUnused(); // CHECK:STDERR: fail_use_imported.carbon:[[@LINE+12]]:3: error: function returns incomplete type `C` [IncompleteTypeInFunctionReturnType] @@ -79,9 +79,9 @@ fn CallFAndGIncomplete() { // CHECK:STDERR: class C; // CHECK:STDERR: ^~~~~~~~ // CHECK:STDERR: fail_use_imported.carbon:[[@LINE-23]]:1: in import [InImport] - // CHECK:STDERR: fail_incomplete_return.carbon:8:18: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: fail_incomplete_return.carbon:8:21: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn ReturnCUsed() -> C; - // CHECK:STDERR: ^~~~ + // CHECK:STDERR: ^ // CHECK:STDERR: ReturnCUsed(); ReturnDUnused(); diff --git a/toolchain/check/testdata/function/generic/deduce.carbon b/toolchain/check/testdata/function/generic/deduce.carbon index 891f62a8fd9b..1f2d828cf5af 100644 --- a/toolchain/check/testdata/function/generic/deduce.carbon +++ b/toolchain/check/testdata/function/generic/deduce.carbon @@ -602,7 +602,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc6_43: type = pattern_type %ptr.loc6_47.1 [symbolic = %pattern_type.loc6_43 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43: = require_complete_type %ptr.loc6_47.1 [symbolic = %require_complete.loc6_43 (constants.%require_complete.ef1)] +// CHECK:STDOUT: %require_complete.loc6_47: = require_complete_type %ptr.loc6_47.1 [symbolic = %require_complete.loc6_47 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc6_38: = require_complete_type %T.loc6_27.1 [symbolic = %require_complete.loc6_38 (constants.%require_complete.944)] // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2: = specific_function constants.%ExplicitAndAlsoDeduced, @ExplicitAndAlsoDeduced(%T.loc6_27.1) [symbolic = %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 (constants.%ExplicitAndAlsoDeduced.specific_fn.4c1)] // CHECK:STDOUT: @@ -643,7 +643,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43 => constants.%require_complete.ef1 +// CHECK:STDOUT: %require_complete.loc6_47 => constants.%require_complete.ef1 // CHECK:STDOUT: %require_complete.loc6_38 => constants.%require_complete.944 // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.4c1 // CHECK:STDOUT: } @@ -655,7 +655,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc6_43 => constants.%pattern_type.5f8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc6_43 => constants.%complete_type.7ea +// CHECK:STDOUT: %require_complete.loc6_47 => constants.%complete_type.7ea // CHECK:STDOUT: %require_complete.loc6_38 => constants.%complete_type.357 // CHECK:STDOUT: %ExplicitAndAlsoDeduced.specific_fn.loc7_10.2 => constants.%ExplicitAndAlsoDeduced.specific_fn.720 // CHECK:STDOUT: } @@ -750,7 +750,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc4_41: type = pattern_type %ptr.loc4_45.1 [symbolic = %pattern_type.loc4_41 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41: = require_complete_type %ptr.loc4_45.1 [symbolic = %require_complete.loc4_41 (constants.%require_complete.ef1)] +// CHECK:STDOUT: %require_complete.loc4_45: = require_complete_type %ptr.loc4_45.1 [symbolic = %require_complete.loc4_45 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc4_36: = require_complete_type %T.loc4_25.1 [symbolic = %require_complete.loc4_36 (constants.%require_complete.944)] // CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2: = specific_function constants.%ImplicitGenericParam, @ImplicitGenericParam(%T.loc4_25.1) [symbolic = %ImplicitGenericParam.specific_fn.loc4_56.2 (constants.%ImplicitGenericParam.specific_fn.47c)] // CHECK:STDOUT: @@ -780,7 +780,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.4f4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41 => constants.%require_complete.ef1 +// CHECK:STDOUT: %require_complete.loc4_45 => constants.%require_complete.ef1 // CHECK:STDOUT: %require_complete.loc4_36 => constants.%require_complete.944 // CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.47c // CHECK:STDOUT: } @@ -792,7 +792,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc4_41 => constants.%pattern_type.fe8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc4_41 => constants.%complete_type.3d0 +// CHECK:STDOUT: %require_complete.loc4_45 => constants.%complete_type.3d0 // CHECK:STDOUT: %require_complete.loc4_36 => constants.%complete_type.f8a // CHECK:STDOUT: %ImplicitGenericParam.specific_fn.loc4_56.2 => constants.%ImplicitGenericParam.specific_fn.752 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/template_dependence.carbon b/toolchain/check/testdata/generic/template_dependence.carbon index b6f22e877bf8..77c58e571451 100644 --- a/toolchain/check/testdata/generic/template_dependence.carbon +++ b/toolchain/check/testdata/generic/template_dependence.carbon @@ -88,7 +88,7 @@ fn F(template T:! type, U:! type) -> (T, U) { // CHECK:STDOUT: %pattern_type.loc5_33: type = pattern_type %ptr.loc5_29.1 [template = %pattern_type.loc5_33 (constants.%pattern_type.4f4b84.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc5_33: = require_complete_type %ptr.loc5_29.1 [template = %require_complete.loc5_33 (constants.%require_complete.ef162c.1)] +// CHECK:STDOUT: %require_complete.loc5_37: = require_complete_type %ptr.loc5_29.1 [template = %require_complete.loc5_37 (constants.%require_complete.ef162c.1)] // CHECK:STDOUT: %require_complete.loc5_26: = require_complete_type %ptr.loc5_30.1 [template = %require_complete.loc5_26 (constants.%require_complete.fbe)] // CHECK:STDOUT: %.loc6_10.4: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc5_15.1) [template = %.loc6_10.4 (constants.%.841)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc5_29.1, @Copy [template = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2e6)] 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 7f63ad5d81e9..d38533e0ec87 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -639,6 +639,7 @@ 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.b0a) [concrete = bool] // CHECK:STDOUT: %FMissingParam.as.J.impl.F.decl.loc117_31.2: %FMissingParam.as.J.impl.F.type.45f670.2 = fn_decl @FMissingParam.as.J.impl.F.loc117_31.2 [concrete = constants.%FMissingParam.as.J.impl.F.300f33.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] @@ -680,6 +681,7 @@ 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.2cb) [concrete = bool] // CHECK:STDOUT: %FMissingImplicitParam.as.J.impl.F.decl.loc130_26.2: %FMissingImplicitParam.as.J.impl.F.type.1eb171.2 = fn_decl @FMissingImplicitParam.as.J.impl.F.loc130_26.2 [concrete = constants.%FMissingImplicitParam.as.J.impl.F.f3d16f.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] @@ -723,6 +725,7 @@ 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.92c) [concrete = bool] // CHECK:STDOUT: %FMissingReturnType.as.J.impl.F.decl.loc152_30.2: %FMissingReturnType.as.J.impl.F.type.2c3eb9.2 = fn_decl @FMissingReturnType.as.J.impl.F.loc152_30.2 [concrete = constants.%FMissingReturnType.as.J.impl.F.405ae3.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] @@ -769,6 +772,7 @@ 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.bad) [concrete = bool] // CHECK:STDOUT: %FDifferentParamType.as.J.impl.F.decl.loc171_38.2: %FDifferentParamType.as.J.impl.F.type.30a936.2 = fn_decl @FDifferentParamType.as.J.impl.F.loc171_38.2 [concrete = constants.%FDifferentParamType.as.J.impl.F.0ea197.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] @@ -815,6 +819,7 @@ 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.923) [concrete = bool] // CHECK:STDOUT: %FDifferentImplicitParamType.as.J.impl.F.decl.loc184_38.2: %FDifferentImplicitParamType.as.J.impl.F.type.ac79c6.2 = fn_decl @FDifferentImplicitParamType.as.J.impl.F.loc184_38.2 [concrete = constants.%FDifferentImplicitParamType.as.J.impl.F.3caa22.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] @@ -863,6 +868,7 @@ 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.a25) [concrete = bool] // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.decl.loc200_38.2: %FDifferentReturnType.as.J.impl.F.type.3243f4.2 = fn_decl @FDifferentReturnType.as.J.impl.F.loc200_38.2 [concrete = constants.%FDifferentReturnType.as.J.impl.F.e4a0b7.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] @@ -910,6 +916,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %array_type.a41 = out_param call_param1 // CHECK:STDOUT: %return: ref %array_type.a41 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: %.loc211: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.182) [concrete = constants.%array_type.a41] // CHECK:STDOUT: %SelfNestedBadParam.as.SelfNested.impl.F.decl.loc223_87.2: %SelfNestedBadParam.as.SelfNested.impl.F.type.56b7c1.2 = fn_decl @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.2 [concrete = constants.%SelfNestedBadParam.as.SelfNested.impl.F.72ff49.2] { // CHECK:STDOUT: %x.patt: %pattern_type.a5c = value_binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.a5c = value_param_pattern %x.patt, call_param0 [concrete] @@ -953,6 +960,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %return.param: ref %array_type.a41 = out_param call_param1 // CHECK:STDOUT: %return: ref %array_type.a41 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: %.loc211: type = specific_constant @SelfNested.F.%array_type.loc211_57.2, @SelfNested.F(constants.%SelfNested.facet.55d) [concrete = constants.%array_type.126] // CHECK:STDOUT: %SelfNestedBadReturnType.as.SelfNested.impl.F.decl.loc239_112.2: %SelfNestedBadReturnType.as.SelfNested.impl.F.type.054b04.2 = fn_decl @SelfNestedBadReturnType.as.SelfNested.impl.F.loc239_112.2 [concrete = constants.%SelfNestedBadReturnType.as.SelfNested.impl.F.abc7a8.2] { // CHECK:STDOUT: %x.patt: %pattern_type.23f = value_binding_pattern x [concrete] // CHECK:STDOUT: %x.param_patt: %pattern_type.23f = 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 b644f6d9f96c..b32e3d585b98 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -374,6 +374,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %struct_type.d.c.b36 = out_param call_param1 // CHECK:STDOUT: %return: ref %struct_type.d.c.b36 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_48.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_48.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -469,6 +470,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %ptr.019 = out_param call_param2 // CHECK:STDOUT: %return: ref %ptr.019 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.84a1c2.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.b849c8.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -616,6 +618,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %ptr.019 = out_param call_param2 // CHECK:STDOUT: %return: ref %ptr.019 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.84a1c2.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.b849c8.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -709,6 +712,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %ptr.019 = out_param call_param2 // CHECK:STDOUT: %return: ref %ptr.019 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %B.as.X.impl.F.decl.loc14_37.2: %B.as.X.impl.F.type.84a1c2.2 = fn_decl @B.as.X.impl.F.loc14_37.2 [concrete = constants.%B.as.X.impl.F.b849c8.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -774,6 +778,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %B = out_param call_param0 // CHECK:STDOUT: %return: ref %B = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %A.as.X.impl.F.decl.loc23_14.2: %A.as.X.impl.F.type.dc7bda.2 = fn_decl @A.as.X.impl.F.loc23_14.2 [concrete = constants.%A.as.X.impl.F.0afbb1.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -872,6 +877,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.e5b) = out_param call_param1 // CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.e5b) = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -1035,6 +1041,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_44.1.%U.binding.as_type (%U.binding.as_type.e5b) = out_param call_param2 // CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_44.1.%U.binding.as_type (%U.binding.as_type.e5b) = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_44.2: %empty_tuple.type.as.I.impl.F.type.e6fdf8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_44.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.f1aebb.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { @@ -1158,6 +1165,7 @@ impl () as I({}) { // CHECK:STDOUT: %return.param: ref %struct_type.b.a.1b0 = out_param call_param0 // CHECK:STDOUT: %return: ref %struct_type.b.a.1b0 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_29.2: %empty_tuple.type.as.I.impl.F.type.109800.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_29.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.3e8bab.2] { // CHECK:STDOUT: // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index c90ed26526ff..0570c42c75e8 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -478,7 +478,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Main.import_ref.b31: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.72f) = import_ref Main//generic_impl, loc16_42, loaded [symbolic = @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.cfb)] // CHECK:STDOUT: %Add.impl_witness_table = impl_witness_table (%Main.import_ref.b31), @MyInt.as.Add.impl [concrete] // CHECK:STDOUT: %Main.import_ref.6b552a.3: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] -// CHECK:STDOUT: %Main.import_ref.99b: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @MyInt.as.Add.impl.%MyInt (constants.%MyInt.819)] +// CHECK:STDOUT: %Main.import_ref.99b8a4.2: type = import_ref Main//generic_impl, loc15_39, loaded [symbolic = @MyInt.as.Add.impl.%MyInt (constants.%MyInt.819)] // CHECK:STDOUT: %Main.import_ref.bf0: type = import_ref Main//generic_impl, loc15_44, loaded [concrete = constants.%Add.type] // CHECK:STDOUT: %Main.import_ref.6b552a.4: Core.IntLiteral = import_ref Main//generic_impl, loc15_14, loaded [symbolic = @MyInt.as.Add.impl.%N (constants.%N)] // CHECK:STDOUT: } @@ -533,7 +533,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %MyInt.as.Add.impl.Op: @MyInt.as.Add.impl.%MyInt.as.Add.impl.Op.type (%MyInt.as.Add.impl.Op.type.72f) = struct_value () [symbolic = %MyInt.as.Add.impl.Op (constants.%MyInt.as.Add.impl.Op.cfb)] // CHECK:STDOUT: %require_complete: = require_complete_type %MyInt [symbolic = %require_complete (constants.%require_complete.855)] // CHECK:STDOUT: -// CHECK:STDOUT: impl: imports.%Main.import_ref.99b as imports.%Main.import_ref.bf0 { +// CHECK:STDOUT: impl: imports.%Main.import_ref.99b8a4.2 as imports.%Main.import_ref.bf0 { // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = imports.%Main.import_ref.42e // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/impl_forall.carbon b/toolchain/check/testdata/impl/lookup/impl_forall.carbon index 0e82f12ee854..2563242f03ac 100644 --- a/toolchain/check/testdata/impl/lookup/impl_forall.carbon +++ b/toolchain/check/testdata/impl/lookup/impl_forall.carbon @@ -189,7 +189,7 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: %pattern_type.loc13_26: type = pattern_type %ptr.loc13_30.1 [symbolic = %pattern_type.loc13_26 (constants.%pattern_type.4f4b84.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_26: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete.loc13_26 (constants.%require_complete.ef162c.1)] +// CHECK:STDOUT: %require_complete.loc13_30: = require_complete_type %ptr.loc13_30.1 [symbolic = %require_complete.loc13_30 (constants.%require_complete.ef162c.1)] // CHECK:STDOUT: %require_complete.loc13_16: = require_complete_type %A [symbolic = %require_complete.loc13_16 (constants.%require_complete.a096cd.1)] // CHECK:STDOUT: %A.elem: type = unbound_element_type %A, %V [symbolic = %A.elem (constants.%A.elem.b1fb46.2)] // CHECK:STDOUT: %.loc14_12.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%V) [symbolic = %.loc14_12.2 (constants.%.841)] @@ -329,7 +329,7 @@ fn TestSpecific(a: A({})*) -> {}* { // CHECK:STDOUT: %pattern_type.loc13_26 => constants.%pattern_type.1cc // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13_26 => constants.%complete_type.38e +// CHECK:STDOUT: %require_complete.loc13_30 => constants.%complete_type.38e // CHECK:STDOUT: %require_complete.loc13_16 => constants.%complete_type.0a6 // CHECK:STDOUT: %A.elem => constants.%A.elem.2af // CHECK:STDOUT: %.loc14_12.2 => constants.%.a00 diff --git a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon index 1dbfecfd0a59..a9ba8698413a 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -924,7 +924,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.loc9_26: type = pattern_type %ptr [symbolic = %pattern_type.loc9_26 (constants.%pattern_type.4f4)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_26: = require_complete_type %ptr [symbolic = %require_complete.loc9_26 (constants.%require_complete.ef1)] +// CHECK:STDOUT: %require_complete.loc9_30: = require_complete_type %ptr [symbolic = %require_complete.loc9_30 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc9_16: = require_complete_type %T.loc9_6.1 [symbolic = %require_complete.loc9_16 (constants.%require_complete.944)] // CHECK:STDOUT: %.loc10_10.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.loc9_6.1) [symbolic = %.loc10_10.2 (constants.%.841)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2e6)] @@ -1136,7 +1136,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.cd0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.861)] +// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.861)] // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.46d)] // CHECK:STDOUT: %.loc10_10.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc10_10.2 (constants.%.763)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.b92)] @@ -1347,7 +1347,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.loc9_25: type = pattern_type %ptr [symbolic = %pattern_type.loc9_25 (constants.%pattern_type.cd0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_25: = require_complete_type %ptr [symbolic = %require_complete.loc9_25 (constants.%require_complete.861)] +// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.861)] // CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.46d)] // CHECK:STDOUT: %.loc10_10.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc10_10.2 (constants.%.763)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.b92)] diff --git a/toolchain/check/testdata/impl/use_assoc_entity.carbon b/toolchain/check/testdata/impl/use_assoc_entity.carbon index 7f3879580d27..4acbc2f108a9 100644 --- a/toolchain/check/testdata/impl/use_assoc_entity.carbon +++ b/toolchain/check/testdata/impl/use_assoc_entity.carbon @@ -1465,7 +1465,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc28_30: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_30 (constants.%pattern_type.36e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc28_38: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_38 (constants.%require_complete.4ce)] +// CHECK:STDOUT: %require_complete.loc28_42: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_42 (constants.%require_complete.4ce)] // CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc28_25 (constants.%require_complete.dfc)] // CHECK:STDOUT: %.loc29_11: type = fn_type_with_self_type constants.%J.F.type, %T.loc28_17.1 [symbolic = %.loc29_11 (constants.%.2e3)] // CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29_11 (%.2e3) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] @@ -1568,7 +1568,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc28_30 => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc28_38 => constants.%complete_type.f8a +// CHECK:STDOUT: %require_complete.loc28_42 => constants.%complete_type.f8a // CHECK:STDOUT: %require_complete.loc28_25 => constants.%complete_type.357 // CHECK:STDOUT: %.loc29_11 => constants.%.4bf // CHECK:STDOUT: %impl.elem1.loc29_11.2 => constants.%E.as.J.impl.F @@ -1807,7 +1807,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %as_type.loc12_35.1 [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.aaa)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc12_39: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_39 (constants.%require_complete.cf1)] +// CHECK:STDOUT: %require_complete.loc12_43: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_43 (constants.%require_complete.cf1)] // CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc12_26 (constants.%require_complete.dfc)] // CHECK:STDOUT: %.loc13_11: type = fn_type_with_self_type constants.%J.F.type, %T.loc12_18.1 [symbolic = %.loc13_11 (constants.%.2e3)] // CHECK:STDOUT: %impl.elem1.loc13_11.2: @GenericResult.%.loc13_11 (%.2e3) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] @@ -2071,7 +2071,7 @@ fn F() { // CHECK:STDOUT: %pattern_type.loc8_47: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_47 (constants.%pattern_type.36e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_55: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_55 (constants.%require_complete.4ce)] +// CHECK:STDOUT: %require_complete.loc8_59: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_59 (constants.%require_complete.4ce)] // CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc8_42 (constants.%require_complete.dfc)] // CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type constants.%J.G.type, %T.loc8_34.1 [symbolic = %.loc9_11 (constants.%.503)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9_11 (%.503) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] @@ -2454,6 +2454,7 @@ fn F() { // CHECK:STDOUT: %return.param: ref = out_param call_param1 // CHECK:STDOUT: %return: ref = return_slot %return.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: %E.as.J.impl.F.decl.loc27_21.2: %E.as.J.impl.F.type.0cf1cd.2 = fn_decl @E.as.J.impl.F.loc27_21.2 [concrete = constants.%E.as.J.impl.F.67c482.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] @@ -3076,6 +3077,7 @@ fn F() { // CHECK:STDOUT: %return.param: ref %empty_struct_type = out_param call_param2 // CHECK:STDOUT: %return: ref %empty_struct_type = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: %.1: type = specific_constant , @J2.F(constants.%J2.facet.360) [concrete = ] // CHECK:STDOUT: %empty_tuple.type.as.J2.impl.F.decl.loc23_33.2: %empty_tuple.type.as.J2.impl.F.type.34cc4b.2 = fn_decl @empty_tuple.type.as.J2.impl.F.loc23_33.2 [concrete = constants.%empty_tuple.type.as.J2.impl.F.0c9bf6.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] @@ -3114,6 +3116,7 @@ fn F() { // CHECK:STDOUT: %return.param: ref %C2 = out_param call_param2 // CHECK:STDOUT: %return: ref %C2 = return_slot %return.param // CHECK:STDOUT: } +// CHECK:STDOUT: %.1: type = specific_constant , @J2.F(constants.%J2.facet.4cc) [concrete = ] // CHECK:STDOUT: %C2.as.J2.impl.F.decl.loc32_33.2: %C2.as.J2.impl.F.type.5a5e13.2 = fn_decl @C2.as.J2.impl.F.loc32_33.2 [concrete = constants.%C2.as.J2.impl.F.b2fe8c.2] { // CHECK:STDOUT: %self.patt: %pattern_type.838 = value_binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.838 = value_param_pattern %self.patt, call_param0 [concrete] @@ -3368,6 +3371,7 @@ 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: %empty_tuple.type.as.K.impl.F.decl.loc26_45.2: %empty_tuple.type.as.K.impl.F.type.6dc3a4.2 = fn_decl @empty_tuple.type.as.K.impl.F.loc26_45.2 [concrete = constants.%empty_tuple.type.as.K.impl.F.360cfa.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/interface/fail_todo_define_default_fn_out_of_line.carbon b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon index 71d8fe26863a..b4cfb30977c7 100644 --- a/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon +++ b/toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon @@ -346,7 +346,7 @@ fn Interface.C.F[self: Self](U:! type, u: U*) -> U* { return u; } // CHECK:STDOUT: %pattern_type.loc14_32: type = pattern_type %ptr.loc14_36.1 [symbolic = %pattern_type.loc14_32 (constants.%pattern_type.423)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc20_47: = require_complete_type %ptr.loc14_36.1 [symbolic = %require_complete.loc20_47 (constants.%require_complete.56d)] +// CHECK:STDOUT: %require_complete.loc20_51: = require_complete_type %ptr.loc14_36.1 [symbolic = %require_complete.loc20_51 (constants.%require_complete.56d)] // CHECK:STDOUT: %require_complete.loc20_22: = require_complete_type %C [symbolic = %require_complete.loc20_22 (constants.%require_complete.179)] // CHECK:STDOUT: %.loc20_62.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc14_22.1) [symbolic = %.loc20_62.2 (constants.%.2bd)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc14_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.484)] diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index 7bdddb7112b2..133242844975 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -405,7 +405,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc16_25: type = pattern_type %tuple.type.loc16 [symbolic = %pattern_type.loc16_25 (constants.%pattern_type.ff2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_25: = require_complete_type %tuple.type.loc16 [symbolic = %require_complete.loc16_25 (constants.%require_complete.7c8)] +// CHECK:STDOUT: %require_complete.loc16_37: = require_complete_type %tuple.type.loc16 [symbolic = %require_complete.loc16_37 (constants.%require_complete.7c8)] // CHECK:STDOUT: %require_complete.loc16_19: = require_complete_type %ptr.loc16_22.1 [symbolic = %require_complete.loc16_19 (constants.%require_complete.ef162c.1)] // CHECK:STDOUT: %tuple.type.loc17: type = tuple_type (constants.%empty_struct_type, constants.%empty_struct_type, %ptr.loc16_22.1) [symbolic = %tuple.type.loc17 (constants.%tuple.type.dd2)] // CHECK:STDOUT: %.loc17_21.2: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%U.loc16_8.1) [symbolic = %.loc17_21.2 (constants.%.841)] @@ -606,7 +606,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc16_25 => constants.%pattern_type.48d // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc16_25 => constants.%complete_type.05d +// CHECK:STDOUT: %require_complete.loc16_37 => constants.%complete_type.05d // CHECK:STDOUT: %require_complete.loc16_19 => constants.%complete_type.d3e // CHECK:STDOUT: %tuple.type.loc17 => constants.%tuple.type.953 // CHECK:STDOUT: %.loc17_21.2 => constants.%.519 @@ -1023,7 +1023,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc17_24: type = pattern_type %tuple.type.loc17_42.2 [symbolic = %pattern_type.loc17_24 (constants.%pattern_type.5cc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_24: = require_complete_type %tuple.type.loc17_42.2 [symbolic = %require_complete.loc17_24 (constants.%require_complete.da0)] +// CHECK:STDOUT: %require_complete.loc17_42: = require_complete_type %tuple.type.loc17_42.2 [symbolic = %require_complete.loc17_42 (constants.%require_complete.da0)] // CHECK:STDOUT: %require_complete.loc17_19: = require_complete_type %U.loc17_8.1 [symbolic = %require_complete.loc17_19 (constants.%require_complete.5a4)] // CHECK:STDOUT: %tuple.type.as.A.impl.F.type: type = fn_type @tuple.type.as.A.impl.F, @tuple.type.as.A.impl(%V1, %V2, %W) [symbolic = %tuple.type.as.A.impl.F.type (constants.%tuple.type.as.A.impl.F.type.52a)] // CHECK:STDOUT: %tuple.type.as.A.impl.F: @tuple.type.as.A.impl.F.%tuple.type.as.A.impl.F.type (%tuple.type.as.A.impl.F.type.52a) = struct_value () [symbolic = %tuple.type.as.A.impl.F (constants.%tuple.type.as.A.impl.F.b6b)] @@ -1203,7 +1203,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc17_24 => constants.%pattern_type.5cc // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_24 => constants.%require_complete.da0 +// CHECK:STDOUT: %require_complete.loc17_42 => constants.%require_complete.da0 // CHECK:STDOUT: %require_complete.loc17_19 => constants.%require_complete.5a4 // CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.52a // CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.b6b @@ -1263,7 +1263,7 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.loc17_24 => constants.%pattern_type.0b2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17_24 => constants.%complete_type.aa8 +// CHECK:STDOUT: %require_complete.loc17_42 => constants.%complete_type.aa8 // CHECK:STDOUT: %require_complete.loc17_19 => constants.%complete_type.357 // CHECK:STDOUT: %tuple.type.as.A.impl.F.type => constants.%tuple.type.as.A.impl.F.type.172 // CHECK:STDOUT: %tuple.type.as.A.impl.F => constants.%tuple.type.as.A.impl.F.506 diff --git a/toolchain/check/testdata/interop/cpp/function/class.carbon b/toolchain/check/testdata/interop/cpp/function/class.carbon index 06de6cfc6549..17aed681d2a0 100644 --- a/toolchain/check/testdata/interop/cpp/function/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/class.carbon @@ -452,9 +452,9 @@ fn F() { // CHECK:STDERR: class C; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] - // CHECK:STDERR: auto foo() -> C; - // CHECK:STDERR: ^ + // CHECK:STDERR: ./decl_value_return_type.h:2:7: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: class C; + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo(); } diff --git a/toolchain/check/testdata/interop/cpp/function/struct.carbon b/toolchain/check/testdata/interop/cpp/function/struct.carbon index 7e75f4849cf5..3c639c3255d3 100644 --- a/toolchain/check/testdata/interop/cpp/function/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/struct.carbon @@ -451,9 +451,9 @@ fn F() { // CHECK:STDERR: struct S; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] - // CHECK:STDERR: auto foo() -> S; - // CHECK:STDERR: ^ + // CHECK:STDERR: ./decl_value_return_type.h:2:8: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: struct S; + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo(); } diff --git a/toolchain/check/testdata/interop/cpp/function/union.carbon b/toolchain/check/testdata/interop/cpp/function/union.carbon index 022209cf2225..29694d05af55 100644 --- a/toolchain/check/testdata/interop/cpp/function/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/union.carbon @@ -413,9 +413,9 @@ fn F() { // CHECK:STDERR: union U; // CHECK:STDERR: ^ // CHECK:STDERR: fail_import_decl_value_return_type.carbon:[[@LINE-14]]:10: in file included here [InCppInclude] - // CHECK:STDERR: ./decl_value_return_type.h:4:1: note: return type declared here [IncompleteReturnTypeHere] - // CHECK:STDERR: auto foo() -> U; - // CHECK:STDERR: ^ + // CHECK:STDERR: ./decl_value_return_type.h:2:7: note: return type declared here [IncompleteReturnTypeHere] + // CHECK:STDERR: union U; + // CHECK:STDERR: ^ // CHECK:STDERR: Cpp.foo(); } diff --git a/toolchain/check/testdata/namespace/imported_indirect.carbon b/toolchain/check/testdata/namespace/imported_indirect.carbon index c447dd585be4..ffa889acaf57 100644 --- a/toolchain/check/testdata/namespace/imported_indirect.carbon +++ b/toolchain/check/testdata/namespace/imported_indirect.carbon @@ -65,9 +65,9 @@ import library "b"; // CHECK:STDERR: class A.C; // CHECK:STDERR: ^~~~~~~~~~ // CHECK:STDERR: fail_named_indirectly_same_package.carbon:[[@LINE-10]]:1: in import [InImport] -// CHECK:STDERR: b.carbon:7:8: note: return type declared here [IncompleteReturnTypeHere] +// CHECK:STDERR: b.carbon:7:11: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn F() -> A.C; -// CHECK:STDERR: ^~~~~~ +// CHECK:STDERR: ^~~ // CHECK:STDERR: fn G() { F(); } @@ -86,9 +86,9 @@ import Same library "b"; // CHECK:STDERR: class A.C; // CHECK:STDERR: ^~~~~~~~~~ // CHECK:STDERR: fail_named_indirectly_different_package.carbon:[[@LINE-10]]:1: in import [InImport] -// CHECK:STDERR: b.carbon:7:8: note: return type declared here [IncompleteReturnTypeHere] +// CHECK:STDERR: b.carbon:7:11: note: return type declared here [IncompleteReturnTypeHere] // CHECK:STDERR: fn F() -> A.C; -// CHECK:STDERR: ^~~~~~ +// CHECK:STDERR: ^~~ // CHECK:STDERR: fn G() { Same.F(); } diff --git a/toolchain/check/testdata/return/fail_returned_var_type.carbon b/toolchain/check/testdata/return/fail_returned_var_type.carbon index 14d3b5619b3c..229b21cbed99 100644 --- a/toolchain/check/testdata/return/fail_returned_var_type.carbon +++ b/toolchain/check/testdata/return/fail_returned_var_type.carbon @@ -16,9 +16,9 @@ fn Mismatch() -> i32 { // CHECK:STDERR: fail_returned_var_type.carbon:[[@LINE+7]]:19: error: type `f64` of `returned var` does not match return type of enclosing function [ReturnedVarWrongType] // CHECK:STDERR: returned var v: f64 = 0.0; // CHECK:STDERR: ^~~ - // CHECK:STDERR: fail_returned_var_type.carbon:[[@LINE-4]]:15: note: return type of function is `i32` [ReturnTypeHereNote] + // CHECK:STDERR: fail_returned_var_type.carbon:[[@LINE-4]]:18: note: return type of function is `i32` [ReturnTypeHereNote] // CHECK:STDERR: fn Mismatch() -> i32 { - // CHECK:STDERR: ^~~~~~ + // CHECK:STDERR: ^~~ // CHECK:STDERR: returned var v: f64 = 0.0; return var; diff --git a/toolchain/check/testdata/return/fail_value_missing.carbon b/toolchain/check/testdata/return/fail_value_missing.carbon index 759d089332a9..fe1b0f5130b2 100644 --- a/toolchain/check/testdata/return/fail_value_missing.carbon +++ b/toolchain/check/testdata/return/fail_value_missing.carbon @@ -16,9 +16,9 @@ fn Main() -> i32 { // CHECK:STDERR: fail_value_missing.carbon:[[@LINE+7]]:3: error: missing return value [ReturnStatementMissingExpr] // CHECK:STDERR: return; // CHECK:STDERR: ^~~~~~~ - // CHECK:STDERR: fail_value_missing.carbon:[[@LINE-4]]:11: note: return type of function is `i32` [ReturnTypeHereNote] + // CHECK:STDERR: fail_value_missing.carbon:[[@LINE-4]]:14: note: return type of function is `i32` [ReturnTypeHereNote] // CHECK:STDERR: fn Main() -> i32 { - // CHECK:STDERR: ^~~~~~ + // CHECK:STDERR: ^~~ // CHECK:STDERR: return; } diff --git a/toolchain/check/thunk.cpp b/toolchain/check/thunk.cpp index 37dd1c824298..a09d04ca6f09 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 CloneTypeInstId(Context& context, SemIR::SpecificId specific_id, + SemIR::TypeInstId inst_id) -> SemIR::TypeInstId { + if (!inst_id.has_value()) { + return SemIR::TypeInstId::None; + } + + return context.types().GetAsTypeInstId( + GetOrAddInst(context, SemIR::LocId(inst_id), + {.type_id = SemIR::TypeType::TypeId, + .inst_id = inst_id, + .specific_id = specific_id})); +} + static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, SemIR::FunctionId signature_id, SemIR::SpecificId signature_specific_id, @@ -160,8 +173,10 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, context, signature_specific_id, signature.implicit_param_patterns_id); auto param_patterns_id = ClonePatternBlock(context, signature_specific_id, signature.param_patterns_id); - auto return_slot_pattern_id = ClonePattern(context, signature_specific_id, - signature.return_slot_pattern_id); + auto return_patterns_id = ClonePatternBlock(context, signature_specific_id, + signature.return_patterns_id); + auto return_type_inst_id = CloneTypeInstId(context, signature_specific_id, + signature.return_type_inst_id); auto self_param_id = FindSelfPattern(context, implicit_param_patterns_id); auto pattern_block_id = context.pattern_block_stack().Pop(); @@ -169,7 +184,7 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, context.inst_block_stack().Push(); auto call_params_id = CalleePatternMatch(context, implicit_param_patterns_id, param_patterns_id, - return_slot_pattern_id); + return_patterns_id); auto decl_block_id = context.inst_block_stack().Pop(); // Create the `FunctionDecl` instruction. @@ -196,7 +211,8 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, .first_owning_decl_id = decl_id, .definition_id = decl_id}, {.call_params_id = call_params_id, - .return_slot_pattern_id = return_slot_pattern_id, + .return_type_inst_id = return_type_inst_id, + .return_patterns_id = return_patterns_id, .virtual_modifier = callee.virtual_modifier, .virtual_index = callee.virtual_index, .self_param_id = self_param_id}}); @@ -209,9 +225,7 @@ static auto CloneFunctionDecl(Context& context, SemIR::LocId loc_id, static auto HasDeclaredReturnType(Context& context, SemIR::FunctionId function_id) -> bool { - return context.functions() - .Get(function_id) - .return_slot_pattern_id.has_value(); + return context.functions().Get(function_id).return_type_inst_id.has_value(); } // Build an expression that names the value matched by a pattern. diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index eae02ae5afaa..722fc3359a9c 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -333,7 +333,11 @@ auto FileContext::BuildFunctionTypeInfo(const SemIR::Function& function, if (return_info.has_return_slot()) { param_types.push_back( llvm::PointerType::get(llvm_context(), /*AddressSpace=*/0)); - return_param_id = function.return_slot_pattern_id; + auto return_patterns = + sem_ir_->inst_blocks().Get(function.return_patterns_id); + CARBON_CHECK(return_patterns.size() == 1, + "TODO: implement support for multiple return params"); + return_param_id = return_patterns[0]; param_inst_ids.push_back(return_param_id); } for (auto param_pattern_id : llvm::concat( @@ -676,13 +680,19 @@ auto FileContext::BuildFunctionBody(SemIR::FunctionId function_id, function_lowering.SetLocal(param_id, param_value); }; - // Lower the return slot parameter. - if (declaration_function.return_slot_pattern_id.has_value()) { + // Lower to the return slot parameter. + auto return_patterns = sem_ir_->inst_blocks().GetOrEmpty( + declaration_function.return_patterns_id); + if (!return_patterns.empty()) { + CARBON_CHECK(sem_ir_->inst_blocks() + .Get(declaration_function.return_patterns_id) + .size() == 1, + "TODO: implement support for multiple return patterns"); auto call_param_id = call_param_ids.consume_back(); // The LLVM calling convention has the return slot first rather than last. // Note that this queries whether there is a return slot at the LLVM level, - // whereas `function.return_slot_pattern_id.has_value()` queries whether - // there is a return slot at the SemIR level. + // whereas `return_patterns.empty()` queries whether there are any output + // parameters at the SemIR level. if (SemIR::ReturnTypeInfo::ForFunction(sem_ir(), declaration_function, specific_id) .has_return_slot()) { @@ -776,7 +786,7 @@ auto FileContext::BuildDISubroutineType(const SemIR::Function& function, auto return_info = SemIR::ReturnTypeInfo::ForFunction(sem_ir(), function, specific_id); - if (function.return_slot_pattern_id.has_value()) { + if (function.return_type_inst_id.has_value()) { // TODO: If int_repr.kind == SemIR::InitRepr::ByCopy - be sure the return // type is tagged with indirect calling convention. } diff --git a/toolchain/sem_ir/function.cpp b/toolchain/sem_ir/function.cpp index 6157ba444049..5b60a3ccc83e 100644 --- a/toolchain/sem_ir/function.cpp +++ b/toolchain/sem_ir/function.cpp @@ -128,11 +128,11 @@ auto Function::GetParamPatternInfoFromPatternId(const File& sem_ir, auto Function::GetDeclaredReturnType(const File& file, SpecificId specific_id) const -> TypeId { - if (!return_slot_pattern_id.has_value()) { + if (!return_type_inst_id.has_value()) { return TypeId::None; } - return ExtractScrutineeType( - file, GetTypeOfInstInSpecific(file, specific_id, return_slot_pattern_id)); + return file.types().GetTypeIdForTypeConstantId( + GetConstantValueInSpecific(file, specific_id, return_type_inst_id)); } } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/function.h b/toolchain/sem_ir/function.h index 8a6b506feac0..e3830915cf34 100644 --- a/toolchain/sem_ir/function.h +++ b/toolchain/sem_ir/function.h @@ -38,17 +38,28 @@ struct FunctionFields { // the return slot. // // The parameters appear in declaration order: `self` (if present), then the - // explicit runtime parameters, then the return slot (which is "declared" by - // the function's return type declaration). This is not populated on imported - // functions, because it is relevant only for a function definition. + // explicit runtime parameters, then the return parameters (which are + // "declared" by the function's return type declaration). This is not + // populated on imported functions, because it is relevant only for a function + // definition. InstBlockId call_params_id; - // A reference to the instruction in the entity's pattern block that depends - // on all other pattern insts pertaining to the return slot pattern. This may - // or may not be used by the function, depending on whether the return type - // needs a return slot, but is always present if the function has a declared - // return type. - InstId return_slot_pattern_id; + // The type inst representing the function's explicitly declared return type, + // if any. + TypeInstId return_type_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 + // may not be used, depending on whether the type has an in-place initializing + // representation. + // + // Note: As of this writing we don't support non-initializing return forms, + // so this will always be have exactly 1 element if the function has an + // explicitly declared return type. + // + // TODO: replace this with a block of all call parameter patterns. + InstBlockId return_patterns_id; // Which kind of special function this is, if any. This is used in cases where // a special function would otherwise be indistinguishable from a normal @@ -102,8 +113,11 @@ struct Function : public EntityWithParamsBase, if (call_params_id.has_value()) { out << ", call_params_id: " << call_params_id; } - if (return_slot_pattern_id.has_value()) { - out << ", return_slot_pattern: " << return_slot_pattern_id; + if (return_type_inst_id.has_value()) { + out << ", return_type_inst_id: " << return_type_inst_id; + } + if (return_patterns_id.has_value()) { + out << ", return_patterns_id: " << return_patterns_id; } if (!body_block_ids.empty()) { out << llvm::formatv( diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index fbb2be2fdafa..6b5d56845cda 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -1533,10 +1533,6 @@ struct ReturnSlotPattern { // Given an instruction with a constant value that depends on a generic // parameter, selects a version of that instruction with the constant value // corresponding to a particular specific. -// -// TODO: We only form these as the instruction referenced by a `NameRef`. -// Consider merging an `SpecificConstant` + `NameRef` into a new form of -// instruction in order to give a more compact representation. struct SpecificConstant { // TODO: Can we make Parse::NodeId more specific? static constexpr auto Kind = InstKind::SpecificConstant.Define(