From 554b1b8d10071088936b42f4dae83e8ac843f0e2 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 27 Apr 2026 15:04:59 -0400 Subject: [PATCH] Remove SymbolicBindingType (#7114) This inst was meant to support tracking the depth of a `.Self` facet, but we have now implemented substitution of `.Self` in facet type identification, and in eval of where expressions, without needing to track the depth. See history here: - [2025-06-30](https://docs.google.com/document/d/1Yt-i5AmF76LSvD4TrWRIAE_92kii6j5yFiW-S7ahzlg/edit?tab=t.0#heading=h.4qd5dkyfn2k3) - [2025-07-07](https://docs.google.com/document/d/1Yt-i5AmF76LSvD4TrWRIAE_92kii6j5yFiW-S7ahzlg/edit?tab=t.0#heading=h.7urbxcq23olv) - #6026 --- toolchain/check/convert.cpp | 6 +- toolchain/check/eval.cpp | 57 - toolchain/check/eval_inst.cpp | 35 +- toolchain/check/facet_type.cpp | 18 - toolchain/check/handle_where.cpp | 11 - toolchain/check/import_ref.cpp | 20 - toolchain/check/subst.cpp | 21 - .../testdata/basics/include_in_dumps.carbon | 42 +- .../raw_sem_ir/non_core_interfaces.carbon | 8 +- .../basics/raw_sem_ir/one_file.carbon | 138 +- .../check/testdata/class/generic/basic.carbon | 150 +- .../check/testdata/class/generic/field.carbon | 208 +- .../check/testdata/class/generic/init.carbon | 260 +- .../class/generic/member_access.carbon | 108 +- .../class/generic/member_inline.carbon | 118 +- .../class/generic/member_lookup.carbon | 80 +- .../class/generic/member_out_of_line.carbon | 160 +- .../testdata/class/generic/member_type.carbon | 118 +- toolchain/check/testdata/const/basics.carbon | 24 +- .../testdata/deduce/binding_pattern.carbon | 94 +- .../value_with_type_through_access.carbon | 4 +- .../check/testdata/eval/aggregates.carbon | 306 +-- toolchain/check/testdata/eval/symbolic.carbon | 18 +- toolchain/check/testdata/facet/access.carbon | 174 +- .../facet/call_combined_impl_witness.carbon | 146 +- ...rt_class_value_to_facet_value_value.carbon | 34 +- ..._value_to_generic_facet_value_value.carbon | 136 +- ...t_value_as_type_knows_original_type.carbon | 18 +- ..._facet_value_to_narrowed_facet_type.carbon | 484 ++-- ...t_facet_value_value_to_blanket_impl.carbon | 130 +- ..._value_to_generic_facet_value_value.carbon | 346 +-- ...convert_facet_value_value_to_itself.carbon | 66 +- .../testdata/facet/facet_assoc_const.carbon | 22 +- ...convert_facet_value_to_missing_impl.carbon | 66 +- .../check/testdata/facet/period_self.carbon | 194 +- .../testdata/facet/require_import.carbon | 216 +- .../facet/self_in_interface_param.carbon | 92 +- toolchain/check/testdata/for/actual.carbon | 16 +- toolchain/check/testdata/for/pattern.carbon | 228 +- .../builtin/call_from_operator.carbon | 174 +- .../testdata/function/builtin/method.carbon | 64 +- .../testdata/function/generic/call.carbon | 156 +- .../call_method_on_generic_facet.carbon | 10 +- .../generic/deduce_nested_facet_value.carbon | 54 +- .../fail_deduce_imported_function.carbon | 62 +- .../testdata/generic/dependent_param.carbon | 96 +- .../generic/dot_self_symbolic_type.carbon | 62 +- .../generic/template/unimplemented.carbon | 56 +- .../check/testdata/generic/var_param.carbon | 34 +- .../testdata/impl/assoc_const_self.carbon | 182 +- toolchain/check/testdata/impl/compound.carbon | 112 +- .../testdata/impl/extend_impl_generic.carbon | 30 +- .../testdata/impl/fail_call_invalid.carbon | 30 +- .../testdata/impl/fail_impl_as_scope.carbon | 58 +- .../impl/fail_impl_bad_assoc_fn.carbon | 102 +- .../impl/fail_impl_bad_interface.carbon | 12 +- .../check/testdata/impl/forward_decls.carbon | 118 +- .../impl/generic_redeclaration.carbon | 184 +- .../testdata/impl/impl_assoc_const.carbon | 40 +- .../impl/impl_assoc_const_with_prelude.carbon | 24 +- .../check/testdata/impl/impl_thunk.carbon | 120 +- .../impl/impl_thunk_min_prelude.carbon | 12 +- .../testdata/impl/import_builtin_call.carbon | 88 +- .../testdata/impl/import_compound.carbon | 52 +- .../check/testdata/impl/import_generic.carbon | 258 +- .../impl/import_interface_assoc_const.carbon | 126 +- .../check/testdata/impl/import_self.carbon | 68 +- .../testdata/impl/import_self_specific.carbon | 6 +- .../check/testdata/impl/incomplete.carbon | 90 +- .../check/testdata/impl/interface_args.carbon | 136 +- .../impl/lookup/canonical_query_self.carbon | 174 +- .../check/testdata/impl/lookup/generic.carbon | 198 +- .../check/testdata/impl/lookup/import.carbon | 312 +-- .../impl/lookup/instance_method.carbon | 30 +- ...g_generic_inside_rewrite_constraint.carbon | 42 +- ...pecialization_with_symbolic_rewrite.carbon | 410 ++-- .../testdata/impl/lookup/specific_args.carbon | 80 +- .../testdata/impl/lookup/transitive.carbon | 48 +- .../check/testdata/impl/self_in_class.carbon | 36 +- .../testdata/impl/self_in_signature.carbon | 134 +- .../testdata/impl/use_assoc_entity.carbon | 566 ++--- .../testdata/interface/as_type_of_type.carbon | 68 +- .../interface/compound_member_access.carbon | 368 +-- .../testdata/interface/default_fn.carbon | 34 +- .../interface/fail_assoc_const_alias.carbon | 36 +- .../fail_assoc_fn_invalid_use.carbon | 36 +- .../testdata/interface/fail_duplicate.carbon | 22 +- .../interface/fail_lookup_in_type_type.carbon | 6 +- .../interface/fail_member_lookup.carbon | 8 +- .../testdata/interface/fail_modifiers.carbon | 44 +- .../check/testdata/interface/final.carbon | 172 +- .../check/testdata/interface/generic.carbon | 6 +- .../testdata/interface/generic_method.carbon | 304 +-- .../testdata/interface/incomplete.carbon | 74 +- .../check/testdata/interface/local.carbon | 30 +- .../testdata/interface/member_lookup.carbon | 32 +- .../check/testdata/interface/require.carbon | 238 +- .../check/testdata/interface/self.carbon | 38 +- .../interop/cpp/class/import/base.carbon | 6 +- .../cpp/class/import/constructor.carbon | 20 +- .../interop/cpp/function/import/class.carbon | 36 +- .../cpp/function/import/decayed_param.carbon | 90 +- .../cpp/function/import/overloads.carbon | 28 +- .../cpp/function/import/pointer.carbon | 176 +- .../cpp/function/import/reference.carbon | 72 +- .../interop/cpp/function/import/struct.carbon | 36 +- .../interop/cpp/function/import/union.carbon | 36 +- .../cpp/function/import/void_pointer.carbon | 42 +- .../cpp/primitive_types/arithmetic.carbon | 18 +- .../long_and_long_long.llp64.carbon | 2092 ++++++++--------- .../long_and_long_long.lp64.carbon | 1984 ++++++++-------- .../cpp/primitive_types/void_pointer.carbon | 60 +- .../cpp/template/argument_count.carbon | 74 +- .../template/template_template_param.carbon | 18 +- .../interop/cpp/template/type_param.carbon | 36 +- .../testdata/named_constraint/convert.carbon | 12 +- .../testdata/named_constraint/empty.carbon | 24 +- .../named_constraint/empty_generic.carbon | 112 +- .../extend_name_lookup.carbon | 122 +- .../import_constraint_decl.carbon | 18 +- .../testdata/named_constraint/require.carbon | 472 ++-- .../operators/overloaded/index.carbon | 42 +- .../overloaded/index_with_prelude.carbon | 18 +- .../overloaded/string_indexing.carbon | 28 +- .../testdata/packages/missing_prelude.carbon | 40 +- .../testdata/pointer/nested_const.carbon | 24 +- .../testdata/where_expr/constraints.carbon | 44 +- .../testdata/where_expr/designator.carbon | 12 +- .../testdata/where_expr/dot_self_index.carbon | 14 +- .../testdata/where_expr/equal_rewrite.carbon | 48 +- .../testdata/where_expr/non_generic.carbon | 6 +- toolchain/check/type.cpp | 6 - .../compile/optimize/optimize_debug.carbon | 2 +- .../compile/optimize/optimize_default.carbon | 2 +- .../compile/optimize/optimize_none.carbon | 12 +- .../compile/optimize/optimize_size.carbon | 12 +- .../compile/optimize/optimize_speed.carbon | 2 +- toolchain/lower/testdata/array/iterate.carbon | 78 +- toolchain/lower/testdata/class/generic.carbon | 38 +- toolchain/lower/testdata/for/bindings.carbon | 70 +- .../lower/testdata/for/break_continue.carbon | 66 +- toolchain/lower/testdata/for/for.carbon | 66 +- .../testdata/interop/cpp/constructor.carbon | 18 +- .../interop/cpp/cpp_compat_int.carbon | 16 +- .../testdata/interop/cpp/parameters.carbon | 6 +- .../lower/testdata/interop/cpp/pointer.carbon | 34 +- .../testdata/interop/cpp/reference.carbon | 12 +- .../lower/testdata/interop/cpp/void.carbon | 48 +- .../lower/testdata/operators/increment.carbon | 12 +- .../testdata/primitives/int_types.carbon | 52 +- .../lower/testdata/primitives/optional.carbon | 174 +- toolchain/sem_ir/inst_kind.def | 1 - toolchain/sem_ir/inst_namer.cpp | 11 - toolchain/sem_ir/stringify.cpp | 4 - toolchain/sem_ir/type_iterator.cpp | 6 - toolchain/sem_ir/typed_insts.h | 17 - 156 files changed, 8472 insertions(+), 8687 deletions(-) diff --git a/toolchain/check/convert.cpp b/toolchain/check/convert.cpp index 30fc3e04c0ae..db4c6e60d2f4 100644 --- a/toolchain/check/convert.cpp +++ b/toolchain/check/convert.cpp @@ -1491,8 +1491,7 @@ static auto PerformBuiltinConversion(Context& context, SemIR::LocId loc_id, } else { type_inst_id = context.types().GetAsTypeInstId(value_id); - // Shortcut for lossless round trips through a FacetAccessType (which - // evaluates to SymbolicBindingType when wrapping a symbolic binding) when + // Shortcut for lossless round trips through a FacetAccessType when // converting back to the type of the original symbolic binding facet // value. // @@ -1501,9 +1500,6 @@ static auto PerformBuiltinConversion(Context& context, SemIR::LocId loc_id, // would evaluate back to the original SymbolicBinding as its canonical // form. We can skip past the whole impl lookup step then and do that // here. - // - // TODO: This instruction is going to become a `SymbolicBindingType`, so - // we'll need to handle that instead. auto facet_value_inst_id = GetCanonicalFacetOrTypeValue(context, type_inst_id); if (sem_ir.insts().Get(facet_value_inst_id).type_id() == target.type_id) { diff --git a/toolchain/check/eval.cpp b/toolchain/check/eval.cpp index 238cd4eec2d7..a3ec8b4b2121 100644 --- a/toolchain/check/eval.cpp +++ b/toolchain/check/eval.cpp @@ -2467,63 +2467,6 @@ auto TryEvalTypedInst(EvalContext& eval_context, return MakeConstantResult(eval_context.context(), bind, phase); } -template <> -auto TryEvalTypedInst(EvalContext& eval_context, - SemIR::InstId inst_id, - SemIR::Inst inst) - -> SemIR::ConstantId { - // If a specific provides a new value for the binding with `entity_name_id`, - // the SymbolicBindingType is evaluated for that new value. - const auto& bind_name = eval_context.entity_names().Get( - inst.As().entity_name_id); - if (bind_name.bind_index().has_value()) { - if (auto value = - eval_context.GetCompileTimeBindValue(bind_name.bind_index()); - value.has_value()) { - auto value_inst_id = eval_context.constant_values().GetInstId(value); - - // A SymbolicBindingType can evaluate to a FacetAccessType if the new - // value of the entity is a facet value that that does not have a concrete - // type (a FacetType) and does not have a new EntityName to point to (a - // SymbolicBinding). - auto access = SemIR::FacetAccessType{ - .type_id = SemIR::TypeType::TypeId, - .facet_value_inst_id = value_inst_id, - }; - return ConvertEvalResultToConstantId( - eval_context.context(), - EvalConstantInst(eval_context.context(), access), - SemIR::SymbolicBindingType::Kind, - ComputeInstPhase(eval_context.context(), access)); - } - } - - Phase phase = Phase::Concrete; - if (!ReplaceTypeWithConstantValue(eval_context, inst_id, &inst, &phase) || - !ReplaceAllFieldsWithConstantValues(eval_context, &inst, &phase)) { - return SemIR::ConstantId::NotConstant; - } - // Propagate error phase after getting the constant value for all fields. - if (phase == Phase::UnknownDueToError) { - return SemIR::ErrorInst::ConstantId; - } - - // Evaluation of SymbolicBindingType. - // - // Like FacetAccessType, a SymbolicBindingType of a FacetValue just evaluates - // to the type inside. - // - // TODO: Look in ScopeStack with the entity_name_id to find the facet value - // and get its constant value in the current specific context. The - // facet_value_inst_id will go away. - if (auto facet_value = eval_context.insts().TryGetAs( - inst.As().facet_value_inst_id)) { - return eval_context.constant_values().Get(facet_value->type_inst_id); - } - - return MakeConstantResult(eval_context.context(), inst, phase); -} - template <> auto TryEvalTypedInst(EvalContext& eval_context, SemIR::InstId inst_id, SemIR::Inst inst) diff --git a/toolchain/check/eval_inst.cpp b/toolchain/check/eval_inst.cpp index 80970d76434c..a3bb2a70070c 100644 --- a/toolchain/check/eval_inst.cpp +++ b/toolchain/check/eval_inst.cpp @@ -219,23 +219,6 @@ auto EvalConstantInst(Context& context, SemIR::FacetAccessType inst) context.constant_values().Get(facet_value->type_inst_id)); } - if (auto bind_name = context.insts().TryGetAs( - inst.facet_value_inst_id)) { - return ConstantEvalResult::NewSamePhase(SemIR::SymbolicBindingType{ - .type_id = SemIR::TypeType::TypeId, - .entity_name_id = bind_name->entity_name_id, - // TODO: This is to be removed, at which point explore if we should - // replace NewSamePhase with NewAnyPhase (to make the constant value - // concrete). This is still a symbolic type though even if the inst - // doesn't contain a symbolic constant. Previously we crashed in CHECKs - // when we had a symbolic instruction with only an EntityNameId, due to - // it not changing in a generic eval block. Maybe that has improved in - // the latest version of this instruction. If it's not symbolic, then - // SubstConstantCallbacks and other Subst callers may need to handle - // looking through concrete instructions which would be unfortunate. - .facet_value_inst_id = inst.facet_value_inst_id}); - } - // The `facet_value_inst_id` is always a facet value (has type facet type). CARBON_CHECK(context.types().Is( context.insts().Get(inst.facet_value_inst_id).type_id())); @@ -248,18 +231,14 @@ auto EvalConstantInst(Context& context, SemIR::FacetAccessType inst) auto EvalConstantInst(Context& context, SemIR::FacetValue inst) -> ConstantEvalResult { - // A FacetValue that just wraps a SymbolicBinding without adding/removing any - // witnesses is evaluated back to the SymbolicBinding itself. - if (auto bind_as_type = context.insts().TryGetAs( - inst.type_inst_id)) { - // TODO: Look in ScopeStack with the entity_name_id to find the facet value. - auto bind_id = bind_as_type->facet_value_inst_id; - auto bind = context.insts().GetAs(bind_id); - // If the FacetTypes are the same, then the FacetValue didn't add/remove - // any witnesses. - if (bind.type_id == inst.type_id) { + // A FacetValue that just wraps a facet without adding/removing any witnesses + // (which means they have the same type) is evaluated to the facet itself. + if (auto access = + context.insts().TryGetAs(inst.type_inst_id)) { + if (context.insts().Get(access->facet_value_inst_id).type_id() == + inst.type_id) { return ConstantEvalResult::Existing( - context.constant_values().Get(bind_id)); + context.constant_values().Get(access->facet_value_inst_id)); } } diff --git a/toolchain/check/facet_type.cpp b/toolchain/check/facet_type.cpp index 1860c79ef16e..a605f5afe79d 100644 --- a/toolchain/check/facet_type.cpp +++ b/toolchain/check/facet_type.cpp @@ -528,24 +528,6 @@ auto SubstPeriodSelfCallbacks::Subst(SemIR::InstId& inst_id) -> SubstResult { } } - if (auto bind_type = - context().insts().TryGetAs(inst_id)) { - auto bind = context().insts().GetAs( - bind_type->facet_value_inst_id); - const auto& entity_name = context().entity_names().Get(bind.entity_name_id); - if (entity_name.name_id == SemIR::NameId::PeriodSelf) { - // We need to re-construct SymbolicBindingType, not just replace its - // facet instruction. If the new operand is a SymbolicBinding, we need - // to use its entity name. - inst_id = Rebuild( - inst_id, - SemIR::FacetAccessType{.type_id = SemIR::TypeType::TypeId, - .facet_value_inst_id = GetReplacement( - bind_type->facet_value_inst_id, false)}); - return FullySubstituted; - } - } - if (auto bind = context().insts().TryGetAs(inst_id)) { const auto& entity_name = context().entity_names().Get(bind->entity_name_id); diff --git a/toolchain/check/handle_where.cpp b/toolchain/check/handle_where.cpp index 280733400453..057d888f612e 100644 --- a/toolchain/check/handle_where.cpp +++ b/toolchain/check/handle_where.cpp @@ -263,17 +263,6 @@ static auto FindDesignator(Context& context, return FullySubstituted; } } - // FacetAccessType of `.Self` is evaluated to SymbolicBindingType, so we - // need to look for this instruction too, since we won't find a `.Self` - // directly in that case. - if (auto bind = - context().insts().TryGetAs(inst_id)) { - auto entity_name = context().entity_names().Get(bind->entity_name_id); - if (entity_name.name_id == SemIR::NameId::PeriodSelf) { - *found_ = true; - return FullySubstituted; - } - } return SubstOperands; } diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index 8399bd43048b..6c274e1e1da9 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -3908,23 +3908,6 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver, GetLocalCanonicalInstBlockId(resolver, inst.elements_id, elems)}); } -static auto TryResolveTypedInst(ImportRefResolver& resolver, - SemIR::SymbolicBindingType inst) - -> ResolveResult { - auto facet_value_inst_id = - GetLocalConstantInstId(resolver, inst.facet_value_inst_id); - if (resolver.HasNewWork()) { - return ResolveResult::Retry(); - } - - auto entity_name_id = - GetLocalSymbolicEntityNameId(resolver, inst.entity_name_id); - return ResolveResult::Deduplicated( - resolver, {.type_id = SemIR::TypeType::TypeId, - .entity_name_id = entity_name_id, - .facet_value_inst_id = facet_value_inst_id}); -} - static auto TryResolveTypedInst(ImportRefResolver& resolver, SemIR::Temporary inst) -> ResolveResult { CARBON_CHECK(inst.storage_id == SemIR::InstId::None); @@ -4314,9 +4297,6 @@ static auto TryResolveInstCanonical(ImportRefResolver& resolver, case CARBON_KIND(SemIR::SymbolicBindingPattern inst): { return TryResolveTypedInst(resolver, inst, constant_inst_id); } - case CARBON_KIND(SemIR::SymbolicBindingType inst): { - return TryResolveTypedInst(resolver, inst); - } case CARBON_KIND(SemIR::Temporary inst): { return TryResolveTypedInst(resolver, inst); } diff --git a/toolchain/check/subst.cpp b/toolchain/check/subst.cpp index bc685f3cee6d..a6032f5a45f3 100644 --- a/toolchain/check/subst.cpp +++ b/toolchain/check/subst.cpp @@ -490,27 +490,6 @@ class SubstConstantCallbacks final : public SubstInstCallbacks { return SubstResult::FullySubstituted; } - // A symbolic binding `as type` contains the EntityNameId of that symbolic - // binding. If it matches a substitution, then we want to point the - // EntityNameId to the substitution facet value. - if (auto bind = - context().insts().TryGetAs(inst_id)) { - auto& entity_name = context().entity_names().Get(bind->entity_name_id); - - for (auto [bind_index, replacement_id] : substitutions_) { - if (entity_name.bind_index() == bind_index) { - auto replacement_inst_id = - context().constant_values().GetInstId(replacement_id); - inst_id = RebuildNewInst( - loc_id_, { - .type_id = SemIR::TypeType::TypeId, - .facet_value_inst_id = replacement_inst_id, - }); - return SubstResult::FullySubstituted; - } - } - } - auto entity_name_id = SemIR::EntityNameId::None; if (auto bind = context().insts().TryGetAs(inst_id)) { diff --git a/toolchain/check/testdata/basics/include_in_dumps.carbon b/toolchain/check/testdata/basics/include_in_dumps.carbon index 4e8b3448ee78..c0ca95d8ab11 100644 --- a/toolchain/check/testdata/basics/include_in_dumps.carbon +++ b/toolchain/check/testdata/basics/include_in_dumps.carbon @@ -120,8 +120,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.Op.type.71c: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.Op.ae1: %I.WithSelf.Op.type.71c = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -144,16 +144,16 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.71c) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.ae1)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.as_type.loc8_22.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_22.1: type = splice_block %.loc8_22.2 [symbolic = %Self.as_type.loc8_22.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc8_22.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc8_22.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_22.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc8_22.2: type = converted %Self.ref, %Self.as_type.loc8_22.2 [symbolic = %Self.as_type.loc8_22.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.Op.%Self.as_type.loc8_22.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -167,10 +167,10 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %Self.as_type.loc8_22.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_22.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_22.1 [symbolic = %pattern_type (constants.%pattern_type.965)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.as_type.loc8_22.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) { @@ -182,8 +182,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 +// CHECK:STDOUT: %Self.as_type.loc8_22.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -195,7 +195,7 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc8_22.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -213,8 +213,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.WithSelf.Op.type.f73: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.Op.f53: %I.WithSelf.Op.type.f73 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.e26 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] @@ -300,8 +300,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.Op(imports.%Main.import_ref.2362f8.2: %I.type) [from "exclude/included_with_range.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -317,8 +317,8 @@ fn F(c: C) { c.(I.Op)(); } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { diff --git a/toolchain/check/testdata/basics/raw_sem_ir/non_core_interfaces.carbon b/toolchain/check/testdata/basics/raw_sem_ir/non_core_interfaces.carbon index 64c29979f5ab..390d479a856f 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/non_core_interfaces.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/non_core_interfaces.carbon @@ -380,8 +380,8 @@ fn UseLocalCopy[T:! Copy](_: T.T1, _: T.T2) {} // CHECK:STDOUT: inst50000036: {kind: SymbolicBindingPattern, arg0: entity_name50000007, type: type(inst50000032)} // CHECK:STDOUT: inst50000037: {kind: NameRef, arg0: name5, arg1: inst50000033, type: type(inst50000028)} // CHECK:STDOUT: inst50000038: {kind: FacetAccessType, arg0: inst50000037, type: type(TypeType)} -// CHECK:STDOUT: inst50000039: {kind: SymbolicBindingType, arg0: entity_name50000007, arg1: inst50000034, type: type(TypeType)} -// CHECK:STDOUT: inst5000003A: {kind: SymbolicBindingType, arg0: entity_name50000007, arg1: inst50000035, type: type(TypeType)} +// CHECK:STDOUT: inst50000039: {kind: FacetAccessType, arg0: inst50000034, type: type(TypeType)} +// CHECK:STDOUT: inst5000003A: {kind: FacetAccessType, arg0: inst50000035, type: type(TypeType)} // CHECK:STDOUT: inst5000003B: {kind: Converted, arg0: inst50000037, arg1: inst50000038, type: type(TypeType)} // CHECK:STDOUT: inst5000003C: {kind: AssociatedEntityType, arg0: interface50000001, arg1: specific, type: type(TypeType)} // CHECK:STDOUT: inst5000003D: {kind: ImportRefLoaded, arg0: import_ir_inst9, arg1: entity_name, type: type(TypeType)} @@ -439,8 +439,8 @@ fn UseLocalCopy[T:! Copy](_: T.T1, _: T.T2) {} // CHECK:STDOUT: inst50000071: {kind: SymbolicBindingPattern, arg0: entity_name5000000A, type: type(inst5000006D)} // CHECK:STDOUT: inst50000072: {kind: NameRef, arg0: name5, arg1: inst5000006E, type: type(inst50000013)} // CHECK:STDOUT: inst50000073: {kind: FacetAccessType, arg0: inst50000072, type: type(TypeType)} -// CHECK:STDOUT: inst50000074: {kind: SymbolicBindingType, arg0: entity_name50000007, arg1: inst5000006F, type: type(TypeType)} -// CHECK:STDOUT: inst50000075: {kind: SymbolicBindingType, arg0: entity_name50000007, arg1: inst50000070, type: type(TypeType)} +// CHECK:STDOUT: inst50000074: {kind: FacetAccessType, arg0: inst5000006F, type: type(TypeType)} +// CHECK:STDOUT: inst50000075: {kind: FacetAccessType, arg0: inst50000070, type: type(TypeType)} // CHECK:STDOUT: inst50000076: {kind: Converted, arg0: inst50000072, arg1: inst50000073, type: type(TypeType)} // CHECK:STDOUT: inst50000077: {kind: NameRef, arg0: name2, arg1: inst5000001B, type: type(inst5000001A)} // CHECK:STDOUT: inst50000078: {kind: LookupImplWitness, arg0: inst5000006F, arg1: specific_interface50000001, type: type(inst(WitnessType))} 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 e2987f586075..c00758c63355 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -278,63 +278,45 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name78000004: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000005: {name: name4, parent_scope: name_scope78000003, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000006: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000007: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000008: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000007: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000008: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000009: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800000A: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800000B: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800000C: {name: name(SelfType), parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000B: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800000D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800000E: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800000F: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800000F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000010: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000011: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000012: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000013: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000014: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000014: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000015: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000016: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000017: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000018: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000016: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000017: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000018: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000019: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800001A: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001A: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800001B: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800001C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800001D: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800001E: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800001F: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000020: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000021: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000022: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800001F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000020: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000021: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000022: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000023: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000024: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000025: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000026: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000027: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000028: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000025: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000026: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000027: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name78000028: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name78000029: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800002A: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: entity_name7800002B: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800002C: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800002D: {name: name(SelfValue), parent_scope: name_scope, index: -1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800002E: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800002F: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000030: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000031: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000032: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000033: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000034: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000035: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000036: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000037: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000038: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name78000039: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003A: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003B: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003C: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003E: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} -// CHECK:STDOUT: entity_name7800003F: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002C: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, is_unused: 0, form: inst} +// CHECK:STDOUT: entity_name7800002D: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, is_unused: 0, form: inst} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function78000000: {name: name0, parent_scope: name_scope0, call_param_patterns_id: inst_block78000010, call_params_id: inst_block78000011, return_type_inst_id: inst78000030, return_form_inst_id: inst78000032, return_pattern_id: inst78000038, body: [inst_block78000018]} @@ -598,18 +580,18 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000056: {kind: FunctionDecl, arg0: function78000001, arg1: inst_block_empty, type: type(symbolic_constant78000015)} // CHECK:STDOUT: inst78000057: {kind: FunctionType, arg0: function78000001, arg1: specific78000001, type: type(TypeType)} // CHECK:STDOUT: inst78000058: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant78000015)} -// CHECK:STDOUT: inst78000059: {kind: SymbolicBindingType, arg0: entity_name78000004, arg1: inst78000052, type: type(TypeType)} +// CHECK:STDOUT: inst78000059: {kind: FacetAccessType, arg0: inst78000052, type: type(TypeType)} // CHECK:STDOUT: inst7800005A: {kind: PatternType, arg0: inst78000059, type: type(TypeType)} // CHECK:STDOUT: inst7800005B: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant7800001B)} // CHECK:STDOUT: inst7800005C: {kind: ReturnSlotPattern, arg0: inst7800005B, arg1: inst, type: type(symbolic_constant7800001B)} // CHECK:STDOUT: inst7800005D: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant7800001B)} -// CHECK:STDOUT: inst7800005E: {kind: WrapperBindingPattern, arg0: entity_name78000008, arg1: inst7800005D, type: type(symbolic_constant7800001B)} +// CHECK:STDOUT: inst7800005E: {kind: WrapperBindingPattern, arg0: entity_name78000007, arg1: inst7800005D, type: type(symbolic_constant7800001B)} // CHECK:STDOUT: inst7800005F: {kind: InitForm, arg0: inst78000059, type: type(inst(FormType))} // CHECK:STDOUT: inst78000060: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000061: {kind: ImportRefLoaded, arg0: import_ir_instC, arg1: entity_name, type: type(inst(FormType))} // CHECK:STDOUT: inst78000062: {kind: ImportRefLoaded, arg0: import_ir_instD, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000063: {kind: SymbolicBinding, arg0: entity_name78000004, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000064: {kind: SymbolicBindingType, arg0: entity_name78000004, arg1: inst78000063, type: type(TypeType)} +// CHECK:STDOUT: inst78000064: {kind: FacetAccessType, arg0: inst78000063, type: type(TypeType)} // CHECK:STDOUT: inst78000065: {kind: PatternType, arg0: inst78000064, type: type(TypeType)} // CHECK:STDOUT: inst78000066: {kind: InitForm, arg0: inst78000064, type: type(inst(FormType))} // CHECK:STDOUT: inst78000067: {kind: SymbolicBinding, arg0: entity_name78000004, arg1: inst, type: type(inst78000050)} @@ -623,7 +605,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800006F: {kind: ImportRefUnloaded, arg0: import_ir_inst17, arg1: entity_name} // CHECK:STDOUT: inst78000070: {kind: ImplDecl, arg0: impl78000000, arg1: inst_block_empty} // CHECK:STDOUT: inst78000071: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000072: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst78000071, type: type(TypeType)} +// CHECK:STDOUT: inst78000072: {kind: FacetAccessType, arg0: inst78000071, type: type(TypeType)} // CHECK:STDOUT: inst78000073: {kind: ConstType, arg0: inst78000072, type: type(TypeType)} // CHECK:STDOUT: inst78000074: {kind: ImportRefUnloaded, arg0: import_ir_inst19, arg1: entity_name} // CHECK:STDOUT: inst78000075: {kind: ImplWitnessTable, arg0: inst_block78000025, arg1: impl78000000} @@ -635,13 +617,13 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800007B: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant78000036)} // CHECK:STDOUT: inst7800007C: {kind: ReturnSlotPattern, arg0: inst7800007B, arg1: inst, type: type(symbolic_constant78000036)} // CHECK:STDOUT: inst7800007D: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant78000036)} -// CHECK:STDOUT: inst7800007E: {kind: WrapperBindingPattern, arg0: entity_name7800000F, arg1: inst7800007D, type: type(symbolic_constant78000036)} +// CHECK:STDOUT: inst7800007E: {kind: WrapperBindingPattern, arg0: entity_name7800000B, arg1: inst7800007D, type: type(symbolic_constant78000036)} // CHECK:STDOUT: inst7800007F: {kind: InitForm, arg0: inst78000073, type: type(inst(FormType))} // CHECK:STDOUT: inst78000080: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000081: {kind: ImportRefLoaded, arg0: import_ir_inst21, arg1: entity_name, type: type(inst(FormType))} // CHECK:STDOUT: inst78000082: {kind: ImportRefLoaded, arg0: import_ir_inst22, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000083: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000084: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst78000083, type: type(TypeType)} +// CHECK:STDOUT: inst78000084: {kind: FacetAccessType, arg0: inst78000083, type: type(TypeType)} // CHECK:STDOUT: inst78000085: {kind: ConstType, arg0: inst78000084, type: type(TypeType)} // CHECK:STDOUT: inst78000086: {kind: PatternType, arg0: inst78000085, type: type(TypeType)} // CHECK:STDOUT: inst78000087: {kind: InitForm, arg0: inst78000085, type: type(inst(FormType))} @@ -663,12 +645,12 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000097: {kind: ImplWitnessAccess, arg0: inst78000096, arg1: element0, type: type(symbolic_constant78000058)} // CHECK:STDOUT: inst78000098: {kind: SpecificImplFunction, arg0: inst78000097, arg1: specific78000009, type: type(inst(SpecificFunctionType))} // CHECK:STDOUT: inst78000099: {kind: PatternType, arg0: inst78000050, type: type(TypeType)} -// CHECK:STDOUT: inst7800009A: {kind: SymbolicBindingPattern, arg0: entity_name78000015, type: type(inst78000099)} +// CHECK:STDOUT: inst7800009A: {kind: SymbolicBindingPattern, arg0: entity_name7800000F, type: type(inst78000099)} // CHECK:STDOUT: inst7800009B: {kind: ImportRefLoaded, arg0: import_ir_inst30, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst7800009C: {kind: ImportRefLoaded, arg0: import_ir_inst31, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst7800009D: {kind: ImportRefLoaded, arg0: import_ir_inst32, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst7800009E: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst7800009F: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst7800009E, type: type(TypeType)} +// CHECK:STDOUT: inst7800009F: {kind: FacetAccessType, arg0: inst7800009E, type: type(TypeType)} // CHECK:STDOUT: inst780000A0: {kind: ConstType, arg0: inst7800009F, type: type(TypeType)} // CHECK:STDOUT: inst780000A1: {kind: ImplWitness, arg0: inst78000075, arg1: specific7800000A, type: type(inst(WitnessType))} // CHECK:STDOUT: inst780000A2: {kind: FunctionType, arg0: function78000002, arg1: specific7800000A, type: type(TypeType)} @@ -694,7 +676,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000B6: {kind: ImportRefUnloaded, arg0: import_ir_inst4B, arg1: entity_name} // CHECK:STDOUT: inst780000B7: {kind: ImplWitnessTable, arg0: inst_block78000039, arg1: impl78000005} // CHECK:STDOUT: inst780000B8: {kind: ImplWitness, arg0: inst780000B7, arg1: specific7800000B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst780000B9: {kind: SymbolicBindingPattern, arg0: entity_name78000019, type: type(inst78000016)} +// CHECK:STDOUT: inst780000B9: {kind: SymbolicBindingPattern, arg0: entity_name78000013, type: type(inst78000016)} // CHECK:STDOUT: inst780000BA: {kind: ImportRefLoaded, arg0: import_ir_inst4E, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000BB: {kind: ImportRefLoaded, arg0: import_ir_inst4F, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000BC: {kind: ImportRefLoaded, arg0: import_ir_inst50, arg1: entity_name, type: type(TypeType)} @@ -707,7 +689,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000C3: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant78000074)} // CHECK:STDOUT: inst780000C4: {kind: ReturnSlotPattern, arg0: inst780000C3, arg1: inst, type: type(symbolic_constant78000074)} // CHECK:STDOUT: inst780000C5: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant78000074)} -// CHECK:STDOUT: inst780000C6: {kind: WrapperBindingPattern, arg0: entity_name7800001A, arg1: inst780000C5, type: type(symbolic_constant78000074)} +// CHECK:STDOUT: inst780000C6: {kind: WrapperBindingPattern, arg0: entity_name78000014, arg1: inst780000C5, type: type(symbolic_constant78000074)} // CHECK:STDOUT: inst780000C7: {kind: InitForm, arg0: inst7800001D, type: type(inst(FormType))} // CHECK:STDOUT: inst780000C8: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000C9: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name, type: type(inst(FormType))} @@ -729,8 +711,8 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000D9: {kind: ImportRefLoaded, arg0: import_ir_inst6A, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000DA: {kind: ImportRefUnloaded, arg0: import_ir_inst6B, arg1: entity_name} // CHECK:STDOUT: inst780000DB: {kind: ImplDecl, arg0: impl78000008, arg1: inst_block_empty} -// CHECK:STDOUT: inst780000DC: {kind: SymbolicBinding, arg0: entity_name7800001C, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst780000DD: {kind: SymbolicBindingType, arg0: entity_name7800001C, arg1: inst780000DC, type: type(TypeType)} +// CHECK:STDOUT: inst780000DC: {kind: SymbolicBinding, arg0: entity_name78000016, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst780000DD: {kind: FacetAccessType, arg0: inst780000DC, type: type(TypeType)} // CHECK:STDOUT: inst780000DE: {kind: TupleType, arg0: inst_block78000046, type: type(TypeType)} // CHECK:STDOUT: inst780000DF: {kind: ImportRefUnloaded, arg0: import_ir_inst6D, arg1: entity_name} // CHECK:STDOUT: inst780000E0: {kind: ImplWitnessTable, arg0: inst_block78000047, arg1: impl78000008} @@ -744,16 +726,16 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst780000E8: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant7800008F)} // CHECK:STDOUT: inst780000E9: {kind: ReturnSlotPattern, arg0: inst780000E8, arg1: inst, type: type(symbolic_constant7800008F)} // CHECK:STDOUT: inst780000EA: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant7800008F)} -// CHECK:STDOUT: inst780000EB: {kind: WrapperBindingPattern, arg0: entity_name7800001E, arg1: inst780000EA, type: type(symbolic_constant7800008F)} +// CHECK:STDOUT: inst780000EB: {kind: WrapperBindingPattern, arg0: entity_name78000017, arg1: inst780000EA, type: type(symbolic_constant7800008F)} // CHECK:STDOUT: inst780000EC: {kind: InitForm, arg0: inst780000DE, type: type(inst(FormType))} // CHECK:STDOUT: inst780000ED: {kind: ImportRefLoaded, arg0: import_ir_inst74, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst780000EE: {kind: ImportRefLoaded, arg0: import_ir_inst75, arg1: entity_name, type: type(inst(FormType))} // CHECK:STDOUT: inst780000EF: {kind: ImportRefLoaded, arg0: import_ir_inst76, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst780000F0: {kind: ImportRefLoaded, arg0: import_ir_inst77, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst780000F1: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst780000F2: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst780000F1, type: type(TypeType)} -// CHECK:STDOUT: inst780000F3: {kind: SymbolicBinding, arg0: entity_name7800001C, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst780000F4: {kind: SymbolicBindingType, arg0: entity_name7800001C, arg1: inst780000F3, type: type(TypeType)} +// CHECK:STDOUT: inst780000F2: {kind: FacetAccessType, arg0: inst780000F1, type: type(TypeType)} +// CHECK:STDOUT: inst780000F3: {kind: SymbolicBinding, arg0: entity_name78000016, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst780000F4: {kind: FacetAccessType, arg0: inst780000F3, type: type(TypeType)} // CHECK:STDOUT: inst780000F5: {kind: TupleType, arg0: inst_block7800004F, type: type(TypeType)} // CHECK:STDOUT: inst780000F6: {kind: PatternType, arg0: inst780000F5, type: type(TypeType)} // CHECK:STDOUT: inst780000F7: {kind: InitForm, arg0: inst780000F5, type: type(inst(FormType))} @@ -780,25 +762,25 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800010C: {kind: LookupImplWitness, arg0: inst780000F3, arg1: specific_interface78000000, type: type(inst(WitnessType))} // CHECK:STDOUT: inst7800010D: {kind: ImplWitnessAccess, arg0: inst7800010C, arg1: element0, type: type(symbolic_constant780000C2)} // CHECK:STDOUT: inst7800010E: {kind: SpecificImplFunction, arg0: inst7800010D, arg1: specific78000015, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst7800010F: {kind: SymbolicBindingPattern, arg0: entity_name78000029, type: type(inst78000099)} -// CHECK:STDOUT: inst78000110: {kind: SymbolicBindingPattern, arg0: entity_name7800002A, type: type(inst78000099)} +// CHECK:STDOUT: inst7800010F: {kind: SymbolicBindingPattern, arg0: entity_name7800001E, type: type(inst78000099)} +// CHECK:STDOUT: inst78000110: {kind: SymbolicBindingPattern, arg0: entity_name7800001F, type: type(inst78000099)} // CHECK:STDOUT: inst78000111: {kind: ImportRefLoaded, arg0: import_ir_inst8E, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000112: {kind: ImportRefLoaded, arg0: import_ir_inst8F, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000113: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000114: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000115: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000116: {kind: SymbolicBinding, arg0: entity_name7800001C, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst78000116: {kind: SymbolicBinding, arg0: entity_name78000016, arg1: inst, type: type(inst78000050)} // CHECK:STDOUT: inst78000117: {kind: TupleValue, arg0: inst_block7800005C, type: type(inst780000E5)} -// CHECK:STDOUT: inst78000118: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst78000115, type: type(TypeType)} -// CHECK:STDOUT: inst78000119: {kind: SymbolicBindingType, arg0: entity_name7800001C, arg1: inst78000116, type: type(TypeType)} +// CHECK:STDOUT: inst78000118: {kind: FacetAccessType, arg0: inst78000115, type: type(TypeType)} +// CHECK:STDOUT: inst78000119: {kind: FacetAccessType, arg0: inst78000116, type: type(TypeType)} // CHECK:STDOUT: inst7800011A: {kind: TupleType, arg0: inst_block7800005D, type: type(TypeType)} // CHECK:STDOUT: inst7800011B: {kind: ImplWitness, arg0: inst780000E0, arg1: specific78000016, type: type(inst(WitnessType))} // CHECK:STDOUT: inst7800011C: {kind: FunctionType, arg0: function78000004, arg1: specific78000016, type: type(TypeType)} // CHECK:STDOUT: inst7800011D: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant780000D4)} // CHECK:STDOUT: inst7800011E: {kind: ImportRefUnloaded, arg0: import_ir_inst9B, arg1: entity_name} // CHECK:STDOUT: inst7800011F: {kind: ImplDecl, arg0: impl78000009, arg1: inst_block_empty} -// CHECK:STDOUT: inst78000120: {kind: SymbolicBinding, arg0: entity_name7800002B, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000121: {kind: SymbolicBindingType, arg0: entity_name7800002B, arg1: inst78000120, type: type(TypeType)} +// CHECK:STDOUT: inst78000120: {kind: SymbolicBinding, arg0: entity_name78000020, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst78000121: {kind: FacetAccessType, arg0: inst78000120, type: type(TypeType)} // CHECK:STDOUT: inst78000122: {kind: TupleType, arg0: inst_block78000062, type: type(TypeType)} // CHECK:STDOUT: inst78000123: {kind: ImportRefUnloaded, arg0: import_ir_inst9D, arg1: entity_name} // CHECK:STDOUT: inst78000124: {kind: ImplWitnessTable, arg0: inst_block78000063, arg1: impl78000009} @@ -812,7 +794,7 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst7800012C: {kind: OutParamPattern, arg0: name(ReturnSlot), type: type(symbolic_constant780000E2)} // CHECK:STDOUT: inst7800012D: {kind: ReturnSlotPattern, arg0: inst7800012C, arg1: inst, type: type(symbolic_constant780000E2)} // CHECK:STDOUT: inst7800012E: {kind: ValueParamPattern, arg0: name(SelfValue), type: type(symbolic_constant780000E2)} -// CHECK:STDOUT: inst7800012F: {kind: WrapperBindingPattern, arg0: entity_name7800002D, arg1: inst7800012E, type: type(symbolic_constant780000E2)} +// CHECK:STDOUT: inst7800012F: {kind: WrapperBindingPattern, arg0: entity_name78000021, arg1: inst7800012E, type: type(symbolic_constant780000E2)} // CHECK:STDOUT: inst78000130: {kind: InitForm, arg0: inst78000122, type: type(inst(FormType))} // CHECK:STDOUT: inst78000131: {kind: ImportRefLoaded, arg0: import_ir_instA4, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000132: {kind: ImportRefLoaded, arg0: import_ir_instA5, arg1: entity_name, type: type(inst(FormType))} @@ -820,11 +802,11 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000134: {kind: ImportRefLoaded, arg0: import_ir_instA7, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000135: {kind: ImportRefLoaded, arg0: import_ir_instA8, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000136: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000137: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst78000136, type: type(TypeType)} -// CHECK:STDOUT: inst78000138: {kind: SymbolicBinding, arg0: entity_name7800001C, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000139: {kind: SymbolicBindingType, arg0: entity_name7800001C, arg1: inst78000138, type: type(TypeType)} -// CHECK:STDOUT: inst7800013A: {kind: SymbolicBinding, arg0: entity_name7800002B, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst7800013B: {kind: SymbolicBindingType, arg0: entity_name7800002B, arg1: inst7800013A, type: type(TypeType)} +// CHECK:STDOUT: inst78000137: {kind: FacetAccessType, arg0: inst78000136, type: type(TypeType)} +// CHECK:STDOUT: inst78000138: {kind: SymbolicBinding, arg0: entity_name78000016, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst78000139: {kind: FacetAccessType, arg0: inst78000138, type: type(TypeType)} +// CHECK:STDOUT: inst7800013A: {kind: SymbolicBinding, arg0: entity_name78000020, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst7800013B: {kind: FacetAccessType, arg0: inst7800013A, type: type(TypeType)} // CHECK:STDOUT: inst7800013C: {kind: TupleType, arg0: inst_block7800006B, type: type(TypeType)} // CHECK:STDOUT: inst7800013D: {kind: PatternType, arg0: inst7800013C, type: type(TypeType)} // CHECK:STDOUT: inst7800013E: {kind: InitForm, arg0: inst7800013C, type: type(inst(FormType))} @@ -857,21 +839,21 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: inst78000159: {kind: LookupImplWitness, arg0: inst7800013A, arg1: specific_interface78000000, type: type(inst(WitnessType))} // CHECK:STDOUT: inst7800015A: {kind: ImplWitnessAccess, arg0: inst78000159, arg1: element0, type: type(symbolic_constant78000126)} // CHECK:STDOUT: inst7800015B: {kind: SpecificImplFunction, arg0: inst7800015A, arg1: specific78000020, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst7800015C: {kind: SymbolicBindingPattern, arg0: entity_name7800003D, type: type(inst78000099)} -// CHECK:STDOUT: inst7800015D: {kind: SymbolicBindingPattern, arg0: entity_name7800003E, type: type(inst78000099)} -// CHECK:STDOUT: inst7800015E: {kind: SymbolicBindingPattern, arg0: entity_name7800003F, type: type(inst78000099)} +// CHECK:STDOUT: inst7800015C: {kind: SymbolicBindingPattern, arg0: entity_name7800002B, type: type(inst78000099)} +// CHECK:STDOUT: inst7800015D: {kind: SymbolicBindingPattern, arg0: entity_name7800002C, type: type(inst78000099)} +// CHECK:STDOUT: inst7800015E: {kind: SymbolicBindingPattern, arg0: entity_name7800002D, type: type(inst78000099)} // CHECK:STDOUT: inst7800015F: {kind: ImportRefLoaded, arg0: import_ir_instC8, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000160: {kind: ImportRefLoaded, arg0: import_ir_instC9, arg1: entity_name, type: type(TypeType)} // CHECK:STDOUT: inst78000161: {kind: ImportRefLoaded, arg0: import_ir_instCA, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000162: {kind: ImportRefLoaded, arg0: import_ir_instCB, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000163: {kind: ImportRefLoaded, arg0: import_ir_instCC, arg1: entity_name, type: type(inst78000050)} // CHECK:STDOUT: inst78000164: {kind: SymbolicBinding, arg0: entity_name78000001, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000165: {kind: SymbolicBinding, arg0: entity_name7800001C, arg1: inst, type: type(inst78000050)} -// CHECK:STDOUT: inst78000166: {kind: SymbolicBinding, arg0: entity_name7800002B, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst78000165: {kind: SymbolicBinding, arg0: entity_name78000016, arg1: inst, type: type(inst78000050)} +// CHECK:STDOUT: inst78000166: {kind: SymbolicBinding, arg0: entity_name78000020, arg1: inst, type: type(inst78000050)} // CHECK:STDOUT: inst78000167: {kind: TupleValue, arg0: inst_block7800007A, type: type(inst78000129)} -// CHECK:STDOUT: inst78000168: {kind: SymbolicBindingType, arg0: entity_name78000001, arg1: inst78000164, type: type(TypeType)} -// CHECK:STDOUT: inst78000169: {kind: SymbolicBindingType, arg0: entity_name7800001C, arg1: inst78000165, type: type(TypeType)} -// CHECK:STDOUT: inst7800016A: {kind: SymbolicBindingType, arg0: entity_name7800002B, arg1: inst78000166, type: type(TypeType)} +// CHECK:STDOUT: inst78000168: {kind: FacetAccessType, arg0: inst78000164, type: type(TypeType)} +// CHECK:STDOUT: inst78000169: {kind: FacetAccessType, arg0: inst78000165, type: type(TypeType)} +// CHECK:STDOUT: inst7800016A: {kind: FacetAccessType, arg0: inst78000166, type: type(TypeType)} // CHECK:STDOUT: inst7800016B: {kind: TupleType, arg0: inst_block7800007B, type: type(TypeType)} // CHECK:STDOUT: inst7800016C: {kind: ImplWitness, arg0: inst78000124, arg1: specific78000021, type: type(inst(WitnessType))} // CHECK:STDOUT: inst7800016D: {kind: FunctionType, arg0: function78000005, arg1: specific78000021, type: type(TypeType)} diff --git a/toolchain/check/testdata/class/generic/basic.carbon b/toolchain/check/testdata/class/generic/basic.carbon index 6ca2239c8dc0..cf740b719945 100644 --- a/toolchain/check/testdata/class/generic/basic.carbon +++ b/toolchain/check/testdata/class/generic/basic.carbon @@ -40,22 +40,22 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.035) [symbolic] // CHECK:STDOUT: %pattern_type.893: type = pattern_type %Class [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %ptr.e7d: type = ptr_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.66f: Core.Form = init_form %ptr.e7d [symbolic] -// CHECK:STDOUT: %pattern_type.65a: type = pattern_type %ptr.e7d [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %ptr.de9: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %.0dc: Core.Form = init_form %ptr.de9 [symbolic] +// CHECK:STDOUT: %pattern_type.af2: type = pattern_type %ptr.de9 [symbolic] // CHECK:STDOUT: %Class.GetAddr.type: type = fn_type @Class.GetAddr, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.GetAddr: %Class.GetAddr.type = struct_value () [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.GetValue: %Class.GetValue.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.k [symbolic] // CHECK:STDOUT: %require_complete.904: = require_complete_type %Class [symbolic] -// CHECK:STDOUT: %require_complete.9dc: = require_complete_type %ptr.e7d [symbolic] +// CHECK:STDOUT: %require_complete.b60: = require_complete_type %ptr.de9 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -63,13 +63,13 @@ class Declaration(T:! type); // CHECK:STDOUT: %specific_impl_fn.bdc: = specific_impl_function %impl.elem0.594, @Copy.WithSelf.Op(%T.035) [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2e7: = lookup_impl_witness %ptr.e7d, @Copy [symbolic] -// CHECK:STDOUT: %.3a3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.e7d, (%Copy.lookup_impl_witness.2e7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.486: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.b63: type = fn_type_with_self_type %Copy.WithSelf.Op.type.486, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.387: %.b63 = impl_witness_access %Copy.lookup_impl_witness.2e7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7f8: = specific_impl_function %impl.elem0.387, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.b83: = lookup_impl_witness %ptr.de9, @Copy [symbolic] +// CHECK:STDOUT: %.e85: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.de9, (%Copy.lookup_impl_witness.b83) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.eb1: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.113: type = fn_type_with_self_type %Copy.WithSelf.Op.type.eb1, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.10e: %.113 = impl_witness_access %Copy.lookup_impl_witness.b83, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.d14: = specific_impl_function %impl.elem0.10e, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: %Declaration.type: type = generic_class_type @Declaration [concrete] // CHECK:STDOUT: %Declaration.generic: %Declaration.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -113,56 +113,56 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.GetAddr: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = struct_value () [symbolic = %Class.GetAddr (constants.%Class.GetAddr)] // CHECK:STDOUT: %Class.GetValue.type: type = fn_type @Class.GetValue, @Class(%T.loc5_14.1) [symbolic = %Class.GetValue.type (constants.%Class.GetValue.type)] // CHECK:STDOUT: %Class.GetValue: @Class.%Class.GetValue.type (%Class.GetValue.type) = struct_value () [symbolic = %Class.GetValue (constants.%Class.GetValue)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_14.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %T.as_type.loc14_10.2: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc14_10.2 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc14_10.2 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @Class.%T.as_type.loc14_10.2 (%T.as_type)} [symbolic = %struct_type.k (constants.%struct_type.k)] // CHECK:STDOUT: %complete_type.loc15_1.2: = complete_type_witness %struct_type.k [symbolic = %complete_type.loc15_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.GetAddr.decl: @Class.%Class.GetAddr.type (%Class.GetAddr.type) = fn_decl @Class.GetAddr [symbolic = @Class.%Class.GetAddr (constants.%Class.GetAddr)] { // CHECK:STDOUT: %self.param_patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.893) = ref_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Class.GetAddr.%pattern_type.loc6_22 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.65a) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.65a) = return_slot_pattern %return.param_patt, %ptr.loc6_36.2 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.af2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetAddr.%pattern_type.loc6_36 (%pattern_type.af2) = return_slot_pattern %return.param_patt, %ptr.loc6_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_36.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %ptr.loc6_36.2: type = ptr_type %.loc6_36.2 [symbolic = %ptr.loc6_36.1 (constants.%ptr.e7d)] -// CHECK:STDOUT: %.loc6_36.3: Core.Form = init_form %ptr.loc6_36.2 [symbolic = %.loc6_36.1 (constants.%.66f)] +// CHECK:STDOUT: %T.as_type.loc6_36.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_36.2: type = converted %T.ref, %T.as_type.loc6_36.2 [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] +// CHECK:STDOUT: %ptr.loc6_36.2: type = ptr_type %.loc6_36.2 [symbolic = %ptr.loc6_36.1 (constants.%ptr.de9)] +// CHECK:STDOUT: %.loc6_36.3: Core.Form = init_form %ptr.loc6_36.2 [symbolic = %.loc6_36.1 (constants.%.0dc)] // CHECK:STDOUT: %self.param: ref @Class.GetAddr.%Class (%Class) = ref_param call_param0 // CHECK:STDOUT: %.loc6_24.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc6_24.2: type = specific_constant constants.%Class, @Class(constants.%T.035) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc6_24.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: ref @Class.GetAddr.%Class (%Class) = ref_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.de9) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.GetAddr.%ptr.loc6_36.1 (%ptr.de9) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.GetValue.decl: @Class.%Class.GetValue.type (%Class.GetValue.type) = fn_decl @Class.GetValue [symbolic = @Class.%Class.GetValue (constants.%Class.GetValue)] { // CHECK:STDOUT: %self.param_patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.893) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Class.GetValue.%pattern_type.loc10_19 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.GetValue.%pattern_type.loc10_32 (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_32.3: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc10_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_32.3: type = converted %T.ref, %T.as_type.loc10_32.2 [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.435d17.2)] // CHECK:STDOUT: %self.param: @Class.GetValue.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc10_21.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc10_21.2: type = specific_constant constants.%Class, @Class(constants.%T.035) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_21.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Class.GetValue.%Class (%Class) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc14_10: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_10.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc14_10: type = converted %T.ref, %T.as_type.loc14_10.1 [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc14_8: @Class.%Class.elem (%Class.elem) = field_decl k, element0 [concrete] // CHECK:STDOUT: %complete_type.loc15_1.1: = complete_type_witness constants.%struct_type.k [symbolic = %complete_type.loc15_1.2 (constants.%complete_type)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc15_1.1 @@ -186,34 +186,34 @@ class Declaration(T:! type); // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc6_22: type = pattern_type %Class [symbolic = %pattern_type.loc6_22 (constants.%pattern_type.893)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %ptr.loc6_36.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc6_36.1 (constants.%ptr.e7d)] -// CHECK:STDOUT: %.loc6_36.1: Core.Form = init_form %ptr.loc6_36.1 [symbolic = %.loc6_36.1 (constants.%.66f)] -// CHECK:STDOUT: %pattern_type.loc6_36: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_36 (constants.%pattern_type.65a)] +// CHECK:STDOUT: %T.as_type.loc6_36.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_36.1 (constants.%T.as_type)] +// CHECK:STDOUT: %ptr.loc6_36.1: type = ptr_type %T.as_type.loc6_36.1 [symbolic = %ptr.loc6_36.1 (constants.%ptr.de9)] +// CHECK:STDOUT: %.loc6_36.1: Core.Form = init_form %ptr.loc6_36.1 [symbolic = %.loc6_36.1 (constants.%.0dc)] +// CHECK:STDOUT: %pattern_type.loc6_36: type = pattern_type %ptr.loc6_36.1 [symbolic = %pattern_type.loc6_36 (constants.%pattern_type.af2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc6_22: = require_complete_type %Class [symbolic = %require_complete.loc6_22 (constants.%require_complete.904)] -// CHECK:STDOUT: %require_complete.loc6_36: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_36 (constants.%require_complete.9dc)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %.loc7_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc7_12.1 (constants.%.3a3)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2e7)] +// CHECK:STDOUT: %require_complete.loc6_36: = require_complete_type %ptr.loc6_36.1 [symbolic = %require_complete.loc6_36 (constants.%require_complete.b60)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc6_36.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %.loc7_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc6_36.1) [symbolic = %.loc7_12.1 (constants.%.e85)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc6_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.b83)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc6_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.486)] -// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.b63)] -// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.b63) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.387)] -// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.7f8)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.eb1)] +// CHECK:STDOUT: %.loc7_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc7_12.2 (constants.%.113)] +// CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.GetAddr.%.loc7_12.2 (%.113) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.10e)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.d14)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class)) -> out %return.param: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) { +// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class)) -> out %return.param: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.de9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: ref @Class.GetAddr.%Class (%Class) = name_ref self, %self // CHECK:STDOUT: %k.ref: @Class.GetAddr.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] -// CHECK:STDOUT: %.loc7_17: ref @Class.GetAddr.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) = addr_of %.loc7_17 -// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.b63) = impl_witness_access constants.%Copy.lookup_impl_witness.2e7, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.387)] +// CHECK:STDOUT: %.loc7_17: ref @Class.GetAddr.%T.as_type.loc6_36.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc6_36.1 (%ptr.de9) = addr_of %.loc7_17 +// CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.GetAddr.%.loc7_12.2 (%.113) = impl_witness_access constants.%Copy.lookup_impl_witness.b83, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.10e)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %addr, %impl.elem0.loc7_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.7f8)] +// CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.d14)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %addr, %specific_impl_fn.loc7_12.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc6_36.1 (%ptr.e7d) = call %bound_method.loc7_12.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc6_36.1 (%ptr.de9) = call %bound_method.loc7_12.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -222,32 +222,32 @@ class Declaration(T:! type); // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc10_19: type = pattern_type %Class [symbolic = %pattern_type.loc10_19 (constants.%pattern_type.893)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc10_32.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc10_32.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %T.as_type.loc10_32.1 [symbolic = %.loc10_32.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %pattern_type.loc10_32: type = pattern_type %T.as_type.loc10_32.1 [symbolic = %pattern_type.loc10_32 (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.904)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc11 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_32.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_32.1 [symbolic = %require_complete.loc11 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.GetValue.%.loc11_16.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> out %return.param: @Class.GetValue.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.GetValue.%Class (%Class)) -> out %return.param: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.GetValue.%Class (%Class) = name_ref self, %self // CHECK:STDOUT: %k.ref: @Class.GetValue.%Class.elem (%Class.elem) = name_ref k, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] -// CHECK:STDOUT: %.loc11_16.1: ref @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc11_16.2: @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc11_16.1 +// CHECK:STDOUT: %.loc11_16.1: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc11_16.2: @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = acquire_value %.loc11_16.1 // CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.GetValue.%.loc11_16.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 // CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 -// CHECK:STDOUT: %.loc10_32.1: ref @Class.GetValue.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetValue.%T.binding.as_type (%T.binding.as_type) to %.loc10_32.1 = call %bound_method.loc11_16.2(%.loc11_16.2) +// CHECK:STDOUT: %.loc10_32.1: ref @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetValue.%T.as_type.loc10_32.1 (%T.as_type) to %.loc10_32.1 = call %bound_method.loc11_16.2(%.loc11_16.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -260,8 +260,8 @@ class Declaration(T:! type); // CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr // CHECK:STDOUT: %Class.GetValue.type => constants.%Class.GetValue.type // CHECK:STDOUT: %Class.GetValue => constants.%Class.GetValue -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %T.as_type.loc14_10.2 => constants.%T.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.k => constants.%struct_type.k @@ -272,19 +272,19 @@ class Declaration(T:! type); // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc6_22 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %ptr.loc6_36.1 => constants.%ptr.e7d -// CHECK:STDOUT: %.loc6_36.1 => constants.%.66f -// CHECK:STDOUT: %pattern_type.loc6_36 => constants.%pattern_type.65a +// CHECK:STDOUT: %T.as_type.loc6_36.1 => constants.%T.as_type +// CHECK:STDOUT: %ptr.loc6_36.1 => constants.%ptr.de9 +// CHECK:STDOUT: %.loc6_36.1 => constants.%.0dc +// CHECK:STDOUT: %pattern_type.loc6_36 => constants.%pattern_type.af2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetValue(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc10_19 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc10_32.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc10_32.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc10_32.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc10_32 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Declaration(constants.%T.67d) { diff --git a/toolchain/check/testdata/class/generic/field.carbon b/toolchain/check/testdata/class/generic/field.carbon index fd4fd0e3b9e9..5739f555ea4f 100644 --- a/toolchain/check/testdata/class/generic/field.carbon +++ b/toolchain/check/testdata/class/generic/field.carbon @@ -64,15 +64,15 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.824: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.9b9: %Int.as.Copy.impl.Op.type.824 = struct_value () [symbolic] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58dce0.1: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023143.1: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] // CHECK:STDOUT: %impl.elem0.594c59.1: %.023143.1 = impl_witness_access %Copy.lookup_impl_witness.58dce0.1, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.bdce5c.1: = specific_impl_function %impl.elem0.594c59.1, @Copy.WithSelf.Op(%T.035) [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %require_complete.67ca8d.1: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.89e464.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %Copy.impl_witness.f17: = impl_witness imports.%Copy.impl_witness_table.e76, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.546: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%int_32) [concrete] @@ -81,27 +81,27 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %Copy.WithSelf.Op.type.081: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [concrete] // CHECK:STDOUT: %.8e2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.081, %Copy.facet [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: = specific_function %Int.as.Copy.impl.Op.664, @Int.as.Copy.impl.Op(%int_32) [concrete] -// CHECK:STDOUT: %Class.3168aa.1: type = class_type @Class, @Class(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.c542f5.1: type = pattern_type %Class.3168aa.1 [symbolic] +// CHECK:STDOUT: %Class.579541.1: type = class_type @Class, @Class(%T.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.e5514b.1: type = pattern_type %Class.579541.1 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %Class.elem.7657d6.1: type = unbound_element_type %Class.3168aa.1, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %struct_type.x.8dcd6b.1: type = struct_type {.x: %T.binding.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.e78b36.1: = complete_type_witness %struct_type.x.8dcd6b.1 [symbolic] -// CHECK:STDOUT: %require_complete.ae7bfa.1: = require_complete_type %Class.3168aa.1 [symbolic] +// CHECK:STDOUT: %Class.elem.3f42b4.1: type = unbound_element_type %Class.579541.1, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.x.9cf688.1: type = struct_type {.x: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.bb64c1.1: = complete_type_witness %struct_type.x.9cf688.1 [symbolic] +// CHECK:STDOUT: %require_complete.48da4e.1: = require_complete_type %Class.579541.1 [symbolic] // CHECK:STDOUT: %U.035: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.14b: type = symbolic_binding_type U, 0, %U.035 [symbolic] -// CHECK:STDOUT: %Class.3168aa.2: type = class_type @Class, @Class(%U.binding.as_type.14b) [symbolic] -// CHECK:STDOUT: %pattern_type.c542f5.2: type = pattern_type %Class.3168aa.2 [symbolic] -// CHECK:STDOUT: %.076a48.3: Core.Form = init_form %U.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.3: type = pattern_type %U.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %U.as_type.255: type = facet_access_type %U.035 [symbolic] +// CHECK:STDOUT: %Class.579541.2: type = class_type @Class, @Class(%U.as_type.255) [symbolic] +// CHECK:STDOUT: %pattern_type.e5514b.2: type = pattern_type %Class.579541.2 [symbolic] +// CHECK:STDOUT: %.435d17.3: Core.Form = init_form %U.as_type.255 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.3: type = pattern_type %U.as_type.255 [symbolic] // CHECK:STDOUT: %H.type: type = fn_type @H [concrete] // CHECK:STDOUT: %H: %H.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67ca8d.2: = require_complete_type %U.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %Class.elem.7657d6.2: type = unbound_element_type %Class.3168aa.2, %U.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %struct_type.x.8dcd6b.2: type = struct_type {.x: %U.binding.as_type.14b} [symbolic] -// CHECK:STDOUT: %complete_type.e78b36.2: = complete_type_witness %struct_type.x.8dcd6b.2 [symbolic] -// CHECK:STDOUT: %require_complete.ae7bfa.2: = require_complete_type %Class.3168aa.2 [symbolic] +// CHECK:STDOUT: %require_complete.89e464.2: = require_complete_type %U.as_type.255 [symbolic] +// CHECK:STDOUT: %Class.elem.3f42b4.2: type = unbound_element_type %Class.579541.2, %U.as_type.255 [symbolic] +// CHECK:STDOUT: %struct_type.x.9cf688.2: type = struct_type {.x: %U.as_type.255} [symbolic] +// CHECK:STDOUT: %complete_type.bb64c1.2: = complete_type_witness %struct_type.x.9cf688.2 [symbolic] +// CHECK:STDOUT: %require_complete.48da4e.2: = require_complete_type %Class.579541.2 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58dce0.2: = lookup_impl_witness %U.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.035) [symbolic] // CHECK:STDOUT: %.023143.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.3, %U.035 [symbolic] @@ -152,61 +152,61 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_22 (%pattern_type.c542f5.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_22 (%pattern_type.c542f5.1) = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_37 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_37 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc13_37.3 [concrete] +// CHECK:STDOUT: %c.param_patt: @G.%pattern_type.loc13_22 (%pattern_type.e5514b.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @G.%pattern_type.loc13_22 (%pattern_type.e5514b.1) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @G.%pattern_type.loc13_37 (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @G.%pattern_type.loc13_37 (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc13_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13_37: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc13_37: type = facet_access_type %T.ref.loc13_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_37.3: type = converted %T.ref.loc13_37, %T.as_type.loc13_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_37.4: Core.Form = init_form %.loc13_37.3 [symbolic = %.loc13_37.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc13_37: type = facet_access_type %T.ref.loc13_37 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_37.3: type = converted %T.ref.loc13_37, %T.as_type.loc13_37 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_37.4: Core.Form = init_form %.loc13_37.3 [symbolic = %.loc13_37.2 (constants.%.435d17.2)] // CHECK:STDOUT: %.loc13_14: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc13_7.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.035)] -// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.3168aa.1) = value_param call_param0 -// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.3168aa.1)] { +// CHECK:STDOUT: %c.param: @G.%Class.loc13_31.1 (%Class.579541.1) = value_param call_param0 +// CHECK:STDOUT: %.loc13_31.1: type = splice_block %Class.loc13_31.2 [symbolic = %Class.loc13_31.1 (constants.%Class.579541.1)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %T.ref.loc13_30: %Copy.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc13_31: type = facet_access_type %T.ref.loc13_30 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_31.2: type = converted %T.ref.loc13_30, %T.as_type.loc13_31 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Class.loc13_31.2: type = class_type @Class, @Class(constants.%T.binding.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.3168aa.1)] +// CHECK:STDOUT: %T.as_type.loc13_31.2: type = facet_access_type %T.ref.loc13_30 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_31.2: type = converted %T.ref.loc13_30, %T.as_type.loc13_31.2 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Class.loc13_31.2: type = class_type @Class, @Class(constants.%T.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.579541.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @G.%Class.loc13_31.1 (%Class.3168aa.1) = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref @G.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @G.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %c: @G.%Class.loc13_31.1 (%Class.579541.1) = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %H.decl: %H.type = fn_decl @H [concrete = constants.%H] { // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_22 (%pattern_type.c542f5.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_22 (%pattern_type.c542f5.2) = at_binding_pattern c, %c.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_37 (%pattern_type.9b9f0c.3) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_37 (%pattern_type.9b9f0c.3) = return_slot_pattern %return.param_patt, %.loc17_37.3 [concrete] +// CHECK:STDOUT: %c.param_patt: @H.%pattern_type.loc17_22 (%pattern_type.e5514b.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %c.patt: @H.%pattern_type.loc17_22 (%pattern_type.e5514b.2) = at_binding_pattern c, %c.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @H.%pattern_type.loc17_37 (%pattern_type.3b9bb5.3) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @H.%pattern_type.loc17_37 (%pattern_type.3b9bb5.3) = return_slot_pattern %return.param_patt, %.loc17_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc17_37: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc17_37.3: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc17_37.4: Core.Form = init_form %.loc17_37.3 [symbolic = %.loc17_37.2 (constants.%.076a48.3)] +// CHECK:STDOUT: %U.as_type.loc17_37: type = facet_access_type %U.ref.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc17_37.3: type = converted %U.ref.loc17_37, %U.as_type.loc17_37 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc17_37.4: Core.Form = init_form %.loc17_37.3 [symbolic = %.loc17_37.2 (constants.%.435d17.3)] // CHECK:STDOUT: %.loc17_14: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc17_7.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.035)] -// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.3168aa.2) = value_param call_param0 -// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.3168aa.2)] { +// CHECK:STDOUT: %c.param: @H.%Class.loc17_31.1 (%Class.579541.2) = value_param call_param0 +// CHECK:STDOUT: %.loc17_31.1: type = splice_block %Class.loc17_31.2 [symbolic = %Class.loc17_31.1 (constants.%Class.579541.2)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %U.ref.loc17_30: %Copy.type = name_ref U, %U.loc17_7.2 [symbolic = %U.loc17_7.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc17_31: type = facet_access_type %U.ref.loc17_30 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc17_31.2: type = converted %U.ref.loc17_30, %U.as_type.loc17_31 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.binding.as_type.14b) [symbolic = %Class.loc17_31.1 (constants.%Class.3168aa.2)] +// CHECK:STDOUT: %U.as_type.loc17_31.2: type = facet_access_type %U.ref.loc17_30 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc17_31.2: type = converted %U.ref.loc17_30, %U.as_type.loc17_31.2 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %Class.loc17_31.2: type = class_type @Class, @Class(constants.%U.as_type.255) [symbolic = %Class.loc17_31.1 (constants.%Class.579541.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.3168aa.2) = value_binding c, %c.param -// CHECK:STDOUT: %return.param: ref @H.%U.binding.as_type (%U.binding.as_type.14b) = out_param call_param1 -// CHECK:STDOUT: %return: ref @H.%U.binding.as_type (%U.binding.as_type.14b) = return_slot %return.param +// CHECK:STDOUT: %c: @H.%Class.loc17_31.1 (%Class.579541.2) = value_binding c, %c.param +// CHECK:STDOUT: %return.param: ref @H.%U.as_type.loc17_31.1 (%U.as_type.255) = out_param call_param1 +// CHECK:STDOUT: %return: ref @H.%U.as_type.loc17_31.1 (%U.as_type.255) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -249,68 +249,68 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc13_7.2: %Copy.type) { // CHECK:STDOUT: %T.loc13_7.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Class.loc13_31.1: type = class_type @Class, @Class(%T.binding.as_type) [symbolic = %Class.loc13_31.1 (constants.%Class.3168aa.1)] -// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.c542f5.1)] -// CHECK:STDOUT: %.loc13_37.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc13_37.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc13_37: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc13_37 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc13_31.1: type = facet_access_type %T.loc13_7.1 [symbolic = %T.as_type.loc13_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Class.loc13_31.1: type = class_type @Class, @Class(%T.as_type.loc13_31.1) [symbolic = %Class.loc13_31.1 (constants.%Class.579541.1)] +// CHECK:STDOUT: %pattern_type.loc13_22: type = pattern_type %Class.loc13_31.1 [symbolic = %pattern_type.loc13_22 (constants.%pattern_type.e5514b.1)] +// CHECK:STDOUT: %.loc13_37.2: Core.Form = init_form %T.as_type.loc13_31.1 [symbolic = %.loc13_37.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %pattern_type.loc13_37: type = pattern_type %T.as_type.loc13_31.1 [symbolic = %pattern_type.loc13_37 (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13 (constants.%require_complete.ae7bfa.1)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.7657d6.1)] -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc14 (constants.%require_complete.67ca8d.1)] +// CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Class.loc13_31.1 [symbolic = %require_complete.loc13 (constants.%require_complete.48da4e.1)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.as_type.loc13_31.1 [symbolic = %Class.elem (constants.%Class.elem.3f42b4.1)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc13_31.1 [symbolic = %require_complete.loc14 (constants.%require_complete.89e464.1)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc14_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_7.1 [symbolic = %.loc14_11.3 (constants.%.023143.1)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58dce0.1)] // CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.3 (%.023143.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.594c59.1)] // CHECK:STDOUT: %specific_impl_fn.loc14_11.2: = specific_impl_function %impl.elem0.loc14_11.2, @Copy.WithSelf.Op(%T.loc13_7.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.bdce5c.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.3168aa.1)) -> out %return.param: @G.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.579541.1)) -> out %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.3168aa.1) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.7657d6.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] -// CHECK:STDOUT: %.loc14_11.1: ref @G.%T.binding.as_type (%T.binding.as_type) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc14_11.2: @G.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc14_11.1 +// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.579541.1) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.3f42b4.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %.loc14_11.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc14_11.2: @G.%T.as_type.loc13_31.1 (%T.as_type) = acquire_value %.loc14_11.1 // CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.3 (%.023143.1) = impl_witness_access constants.%Copy.lookup_impl_witness.58dce0.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.594c59.1)] // CHECK:STDOUT: %bound_method.loc14_11.1: = bound_method %.loc14_11.2, %impl.elem0.loc14_11.1 // CHECK:STDOUT: %specific_impl_fn.loc14_11.1: = specific_impl_function %impl.elem0.loc14_11.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.bdce5c.1)] // CHECK:STDOUT: %bound_method.loc14_11.2: = bound_method %.loc14_11.2, %specific_impl_fn.loc14_11.1 -// CHECK:STDOUT: %.loc13_37.1: ref @G.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @G.%T.binding.as_type (%T.binding.as_type) to %.loc13_37.1 = call %bound_method.loc14_11.2(%.loc14_11.2) +// CHECK:STDOUT: %.loc13_37.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @G.%T.as_type.loc13_31.1 (%T.as_type) to %.loc13_37.1 = call %bound_method.loc14_11.2(%.loc14_11.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @H(%U.loc17_7.2: %Copy.type) { // CHECK:STDOUT: %U.loc17_7.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc17_7.1 (constants.%U.035)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc17_7.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.binding.as_type) [symbolic = %Class.loc17_31.1 (constants.%Class.3168aa.2)] -// CHECK:STDOUT: %pattern_type.loc17_22: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_22 (constants.%pattern_type.c542f5.2)] -// CHECK:STDOUT: %.loc17_37.2: Core.Form = init_form %U.binding.as_type [symbolic = %.loc17_37.2 (constants.%.076a48.3)] -// CHECK:STDOUT: %pattern_type.loc17_37: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc17_37 (constants.%pattern_type.9b9f0c.3)] +// CHECK:STDOUT: %U.as_type.loc17_31.1: type = facet_access_type %U.loc17_7.1 [symbolic = %U.as_type.loc17_31.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %Class.loc17_31.1: type = class_type @Class, @Class(%U.as_type.loc17_31.1) [symbolic = %Class.loc17_31.1 (constants.%Class.579541.2)] +// CHECK:STDOUT: %pattern_type.loc17_22: type = pattern_type %Class.loc17_31.1 [symbolic = %pattern_type.loc17_22 (constants.%pattern_type.e5514b.2)] +// CHECK:STDOUT: %.loc17_37.2: Core.Form = init_form %U.as_type.loc17_31.1 [symbolic = %.loc17_37.2 (constants.%.435d17.3)] +// CHECK:STDOUT: %pattern_type.loc17_37: type = pattern_type %U.as_type.loc17_31.1 [symbolic = %pattern_type.loc17_37 (constants.%pattern_type.3b9bb5.3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17 (constants.%require_complete.ae7bfa.2)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.7657d6.2)] -// CHECK:STDOUT: %require_complete.loc18: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc18 (constants.%require_complete.67ca8d.2)] +// CHECK:STDOUT: %require_complete.loc17: = require_complete_type %Class.loc17_31.1 [symbolic = %require_complete.loc17 (constants.%require_complete.48da4e.2)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.as_type.loc17_31.1 [symbolic = %Class.elem (constants.%Class.elem.3f42b4.2)] +// CHECK:STDOUT: %require_complete.loc18: = require_complete_type %U.as_type.loc17_31.1 [symbolic = %require_complete.loc18 (constants.%require_complete.89e464.2)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc17_7.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.3)] // CHECK:STDOUT: %.loc18_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc17_7.1 [symbolic = %.loc18_11.3 (constants.%.023143.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc17_7.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58dce0.2)] // CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.3 (%.023143.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %specific_impl_fn.loc18_11.2: = specific_impl_function %impl.elem0.loc18_11.2, @Copy.WithSelf.Op(%U.loc17_7.1) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.3168aa.2)) -> out %return.param: @H.%U.binding.as_type (%U.binding.as_type.14b) { +// CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.579541.2)) -> out %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.255) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.3168aa.2) = name_ref c, %c -// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.7657d6.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] -// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.binding.as_type (%U.binding.as_type.14b) = class_element_access %c.ref, element0 -// CHECK:STDOUT: %.loc18_11.2: @H.%U.binding.as_type (%U.binding.as_type.14b) = acquire_value %.loc18_11.1 +// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.579541.2) = name_ref c, %c +// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.3f42b4.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6] +// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.255) = class_element_access %c.ref, element0 +// CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.255) = acquire_value %.loc18_11.1 // CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.3 (%.023143.2) = impl_witness_access constants.%Copy.lookup_impl_witness.58dce0.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %bound_method.loc18_11.1: = bound_method %.loc18_11.2, %impl.elem0.loc18_11.1 // CHECK:STDOUT: %specific_impl_fn.loc18_11.1: = specific_impl_function %impl.elem0.loc18_11.1, @Copy.WithSelf.Op(constants.%U.035) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: %bound_method.loc18_11.2: = bound_method %.loc18_11.2, %specific_impl_fn.loc18_11.1 -// CHECK:STDOUT: %.loc17_37.1: ref @H.%U.binding.as_type (%U.binding.as_type.14b) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @H.%U.binding.as_type (%U.binding.as_type.14b) to %.loc17_37.1 = call %bound_method.loc18_11.2(%.loc18_11.2) +// CHECK:STDOUT: %.loc17_37.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.255) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @H.%U.as_type.loc17_31.1 (%U.as_type.255) to %.loc17_37.1 = call %bound_method.loc18_11.2(%.loc18_11.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -330,43 +330,43 @@ fn H(U:! Core.Copy, c: Class(U)) -> U { // CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.1ec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%T.binding.as_type) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @Class(constants.%T.as_type) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%T.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.67ca8d.1 -// CHECK:STDOUT: %Class => constants.%Class.3168aa.1 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.7657d6.1 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.8dcd6b.1 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.e78b36.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e464.1 +// CHECK:STDOUT: %Class => constants.%Class.579541.1 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.3f42b4.1 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.9cf688.1 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.bb64c1.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.035) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.3168aa.1 -// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.c542f5.1 -// CHECK:STDOUT: %.loc13_37.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc13_37 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc13_31.1 => constants.%T.as_type +// CHECK:STDOUT: %Class.loc13_31.1 => constants.%Class.579541.1 +// CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.e5514b.1 +// CHECK:STDOUT: %.loc13_37.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc13_37 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Class(constants.%U.binding.as_type.14b) { -// CHECK:STDOUT: %T.loc5_14.1 => constants.%U.binding.as_type.14b +// CHECK:STDOUT: specific @Class(constants.%U.as_type.255) { +// CHECK:STDOUT: %T.loc5_14.1 => constants.%U.as_type.255 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.67ca8d.2 -// CHECK:STDOUT: %Class => constants.%Class.3168aa.2 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.7657d6.2 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.8dcd6b.2 -// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.e78b36.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e464.2 +// CHECK:STDOUT: %Class => constants.%Class.579541.2 +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.3f42b4.2 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.9cf688.2 +// CHECK:STDOUT: %complete_type.loc7_1.2 => constants.%complete_type.bb64c1.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @H(constants.%U.035) { // CHECK:STDOUT: %U.loc17_7.1 => constants.%U.035 -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.14b -// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.3168aa.2 -// CHECK:STDOUT: %pattern_type.loc17_22 => constants.%pattern_type.c542f5.2 -// CHECK:STDOUT: %.loc17_37.2 => constants.%.076a48.3 -// CHECK:STDOUT: %pattern_type.loc17_37 => constants.%pattern_type.9b9f0c.3 +// CHECK:STDOUT: %U.as_type.loc17_31.1 => constants.%U.as_type.255 +// CHECK:STDOUT: %Class.loc17_31.1 => constants.%Class.579541.2 +// CHECK:STDOUT: %pattern_type.loc17_22 => constants.%pattern_type.e5514b.2 +// CHECK:STDOUT: %.loc17_37.2 => constants.%.435d17.3 +// CHECK:STDOUT: %pattern_type.loc17_37 => constants.%pattern_type.3b9bb5.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/init.carbon b/toolchain/check/testdata/class/generic/init.carbon index 69e7b940a988..2291059b1a3c 100644 --- a/toolchain/check/testdata/class/generic/init.carbon +++ b/toolchain/check/testdata/class/generic/init.carbon @@ -69,31 +69,31 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %facet_type: type = facet_type <@Destroy & @Copy> [concrete] // CHECK:STDOUT: %pattern_type.b13: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %T.65f: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.b77: type = symbolic_binding_type T, 0, %T.65f [symbolic] -// CHECK:STDOUT: %pattern_type.2a5: type = pattern_type %T.binding.as_type.b77 [symbolic] -// CHECK:STDOUT: %.e39: Core.Form = init_form %T.binding.as_type.b77 [symbolic] +// CHECK:STDOUT: %T.as_type.db4: type = facet_access_type %T.65f [symbolic] +// CHECK:STDOUT: %pattern_type.58d: type = pattern_type %T.as_type.db4 [symbolic] +// CHECK:STDOUT: %.a57: Core.Form = init_form %T.as_type.db4 [symbolic] // CHECK:STDOUT: %InitFromStructGeneric.type: type = fn_type @InitFromStructGeneric [concrete] // CHECK:STDOUT: %InitFromStructGeneric: %InitFromStructGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.a83: = require_complete_type %T.binding.as_type.b77 [symbolic] +// CHECK:STDOUT: %require_complete.1e9: = require_complete_type %T.as_type.db4 [symbolic] // CHECK:STDOUT: %Destroy.lookup_impl_witness.84a: = lookup_impl_witness %T.65f, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.2ff: %Destroy.type = facet_value %T.binding.as_type.b77, (%Destroy.lookup_impl_witness.84a) [symbolic] -// CHECK:STDOUT: %Class.26e: type = class_type @Class, @Class(%Destroy.facet.2ff) [symbolic] -// CHECK:STDOUT: %Class.elem.851: type = unbound_element_type %Class.26e, %T.binding.as_type.b77 [symbolic] -// CHECK:STDOUT: %struct_type.k.a50: type = struct_type {.k: %T.binding.as_type.b77} [symbolic] -// CHECK:STDOUT: %require_complete.7ab: = require_complete_type %Class.26e [symbolic] -// CHECK:STDOUT: %pattern_type.dda: type = pattern_type %Class.26e [symbolic] +// CHECK:STDOUT: %Destroy.facet.5e1: %Destroy.type = facet_value %T.as_type.db4, (%Destroy.lookup_impl_witness.84a) [symbolic] +// CHECK:STDOUT: %Class.46c: type = class_type @Class, @Class(%Destroy.facet.5e1) [symbolic] +// CHECK:STDOUT: %Class.elem.ef9: type = unbound_element_type %Class.46c, %T.as_type.db4 [symbolic] +// CHECK:STDOUT: %struct_type.k.92f: type = struct_type {.k: %T.as_type.db4} [symbolic] +// CHECK:STDOUT: %require_complete.c1b: = require_complete_type %Class.46c [symbolic] +// CHECK:STDOUT: %pattern_type.ebf: type = pattern_type %Class.46c [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.322: = lookup_impl_witness %T.65f, @Copy [symbolic] -// CHECK:STDOUT: %Copy.facet.e72: %Copy.type = facet_value %T.binding.as_type.b77, (%Copy.lookup_impl_witness.322) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.3b4: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.e72) [symbolic] -// CHECK:STDOUT: %.db9: type = fn_type_with_self_type %Copy.WithSelf.Op.type.3b4, %Copy.facet.e72 [symbolic] -// CHECK:STDOUT: %impl.elem0.4f5: %.db9 = impl_witness_access %Copy.lookup_impl_witness.322, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.6bf: = specific_impl_function %impl.elem0.4f5, @Copy.WithSelf.Op(%Copy.facet.e72) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.59d: = lookup_impl_witness %Class.26e, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.735: %Destroy.type = facet_value %Class.26e, (%Destroy.lookup_impl_witness.59d) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.29a: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.735) [symbolic] -// CHECK:STDOUT: %.c77: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.29a, %Destroy.facet.735 [symbolic] -// CHECK:STDOUT: %impl.elem0.6f8: %.c77 = impl_witness_access %Destroy.lookup_impl_witness.59d, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.40b: = specific_impl_function %impl.elem0.6f8, @Destroy.WithSelf.Op(%Destroy.facet.735) [symbolic] +// CHECK:STDOUT: %Copy.facet.856: %Copy.type = facet_value %T.as_type.db4, (%Copy.lookup_impl_witness.322) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.5d5: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.856) [symbolic] +// CHECK:STDOUT: %.e56: type = fn_type_with_self_type %Copy.WithSelf.Op.type.5d5, %Copy.facet.856 [symbolic] +// CHECK:STDOUT: %impl.elem0.bab: %.e56 = impl_witness_access %Copy.lookup_impl_witness.322, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.421: = specific_impl_function %impl.elem0.bab, @Copy.WithSelf.Op(%Copy.facet.856) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.488: = lookup_impl_witness %Class.46c, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.474: %Destroy.type = facet_value %Class.46c, (%Destroy.lookup_impl_witness.488) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.f65: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.474) [symbolic] +// CHECK:STDOUT: %.1fe: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.f65, %Destroy.facet.474 [symbolic] +// CHECK:STDOUT: %impl.elem0.ae3: %.1fe = impl_witness_access %Destroy.lookup_impl_witness.488, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.4b3: = specific_impl_function %impl.elem0.ae3, @Destroy.WithSelf.Op(%Destroy.facet.474) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -147,15 +147,15 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromStructGeneric.decl: %InitFromStructGeneric.type = fn_decl @InitFromStructGeneric [concrete = constants.%InitFromStructGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.b13 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.2a5) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.2a5) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.2a5) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.2a5) = return_slot_pattern %return.param_patt, %.loc9_65.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.58d) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.58d) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.58d) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromStructGeneric.%pattern_type.loc9 (%pattern_type.58d) = return_slot_pattern %return.param_patt, %.loc9_65.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_65: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.65f)] -// CHECK:STDOUT: %T.as_type.loc9_65: type = facet_access_type %T.ref.loc9_65 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] -// CHECK:STDOUT: %.loc9_65.3: type = converted %T.ref.loc9_65, %T.as_type.loc9_65 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] -// CHECK:STDOUT: %.loc9_65.4: Core.Form = init_form %.loc9_65.3 [symbolic = %.loc9_65.2 (constants.%.e39)] +// CHECK:STDOUT: %T.as_type.loc9_65: type = facet_access_type %T.ref.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] +// CHECK:STDOUT: %.loc9_65.3: type = converted %T.ref.loc9_65, %T.as_type.loc9_65 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] +// CHECK:STDOUT: %.loc9_65.4: Core.Form = init_form %.loc9_65.3 [symbolic = %.loc9_65.2 (constants.%.a57)] // CHECK:STDOUT: %.loc9_40.1: type = splice_block %.loc9_40.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref.loc9_30: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -169,15 +169,15 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %.loc9_40.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc9_40.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_27.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.65f)] -// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = value_param call_param0 -// CHECK:STDOUT: %.loc9_59.1: type = splice_block %.loc9_59.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] { +// CHECK:STDOUT: %x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = value_param call_param0 +// CHECK:STDOUT: %.loc9_59.1: type = splice_block %.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] { // CHECK:STDOUT: %T.ref.loc9_59: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.65f)] -// CHECK:STDOUT: %T.as_type.loc9_59: type = facet_access_type %T.ref.loc9_59 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] -// CHECK:STDOUT: %.loc9_59.2: type = converted %T.ref.loc9_59, %T.as_type.loc9_59 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] +// CHECK:STDOUT: %T.as_type.loc9_59.2: type = facet_access_type %T.ref.loc9_59 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] +// CHECK:STDOUT: %.loc9_59.2: type = converted %T.ref.loc9_59, %T.as_type.loc9_59.2 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = return_slot %return.param +// CHECK:STDOUT: %x: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [concrete = constants.%InitFromStructSpecific] { // CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern [concrete] @@ -197,73 +197,73 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromStructGeneric(%T.loc9_27.2: %facet_type) { // CHECK:STDOUT: %T.loc9_27.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc9_27.1 (constants.%T.65f)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_27.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] -// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9 (constants.%pattern_type.2a5)] -// CHECK:STDOUT: %.loc9_65.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc9_65.2 (constants.%.e39)] +// CHECK:STDOUT: %T.as_type.loc9_59.1: type = facet_access_type %T.loc9_27.1 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] +// CHECK:STDOUT: %pattern_type.loc9: type = pattern_type %T.as_type.loc9_59.1 [symbolic = %pattern_type.loc9 (constants.%pattern_type.58d)] +// CHECK:STDOUT: %.loc9_65.2: Core.Form = init_form %T.as_type.loc9_59.1 [symbolic = %.loc9_65.2 (constants.%.a57)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.a83)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_59.1 [symbolic = %require_complete.loc9 (constants.%require_complete.1e9)] // CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_17: = lookup_impl_witness %T.loc9_27.1, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_17 (constants.%Destroy.lookup_impl_witness.84a)] -// CHECK:STDOUT: %Destroy.facet.loc10_17.2: %Destroy.type = facet_value %T.binding.as_type, (%Destroy.lookup_impl_witness.loc10_17) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.2ff)] -// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%Destroy.facet.loc10_17.2) [symbolic = %Class.loc10_17.2 (constants.%Class.26e)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10 (constants.%require_complete.7ab)] -// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.dda)] -// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77)} [symbolic = %struct_type.k (constants.%struct_type.k.a50)] +// CHECK:STDOUT: %Destroy.facet.loc10_17.2: %Destroy.type = facet_value %T.as_type.loc9_59.1, (%Destroy.lookup_impl_witness.loc10_17) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.5e1)] +// CHECK:STDOUT: %Class.loc10_17.2: type = class_type @Class, @Class(%Destroy.facet.loc10_17.2) [symbolic = %Class.loc10_17.2 (constants.%Class.46c)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class.loc10_17.2 [symbolic = %require_complete.loc10 (constants.%require_complete.c1b)] +// CHECK:STDOUT: %pattern_type.loc10: type = pattern_type %Class.loc10_17.2 [symbolic = %pattern_type.loc10 (constants.%pattern_type.ebf)] +// CHECK:STDOUT: %struct_type.k: type = struct_type {.k: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4)} [symbolic = %struct_type.k (constants.%struct_type.k.92f)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_27.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.322)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.binding.as_type, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.e72)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.3b4)] -// CHECK:STDOUT: %.loc10_27: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_27 (constants.%.db9)] -// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27 (%.db9) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.4f5)] -// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.6bf)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.851)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_3: = lookup_impl_witness %Class.loc10_17.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_3 (constants.%Destroy.lookup_impl_witness.59d)] -// CHECK:STDOUT: %Destroy.facet.loc10_3: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness.loc10_3) [symbolic = %Destroy.facet.loc10_3 (constants.%Destroy.facet.735)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc10_3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.29a)] -// CHECK:STDOUT: %.loc10_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc10_3 [symbolic = %.loc10_3.2 (constants.%.c77)] -// CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.2 (%.c77) = impl_witness_access %Destroy.lookup_impl_witness.loc10_3, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.6f8)] -// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc10_3) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.40b)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc9_59.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.856)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.5d5)] +// CHECK:STDOUT: %.loc10_27: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_27 (constants.%.e56)] +// CHECK:STDOUT: %impl.elem0.loc10_27.2: @InitFromStructGeneric.%.loc10_27 (%.e56) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.bab)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.2: = specific_impl_function %impl.elem0.loc10_27.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.421)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc10_17.2, %T.as_type.loc9_59.1 [symbolic = %Class.elem (constants.%Class.elem.ef9)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc10_3: = lookup_impl_witness %Class.loc10_17.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc10_3 (constants.%Destroy.lookup_impl_witness.488)] +// CHECK:STDOUT: %Destroy.facet.loc10_3: %Destroy.type = facet_value %Class.loc10_17.2, (%Destroy.lookup_impl_witness.loc10_3) [symbolic = %Destroy.facet.loc10_3 (constants.%Destroy.facet.474)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc10_3) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.f65)] +// CHECK:STDOUT: %.loc10_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet.loc10_3 [symbolic = %.loc10_3.2 (constants.%.1fe)] +// CHECK:STDOUT: %impl.elem0.loc10_3.2: @InitFromStructGeneric.%.loc10_3.2 (%.1fe) = impl_witness_access %Destroy.lookup_impl_witness.loc10_3, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.ae3)] +// CHECK:STDOUT: %specific_impl_fn.loc10_3.2: = specific_impl_function %impl.elem0.loc10_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc10_3) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.4b3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77)) -> out %return.param: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) { +// CHECK:STDOUT: fn(%x.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4)) -> out %return.param: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.dda) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.dda) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.ebf) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @InitFromStructGeneric.%pattern_type.loc10 (%pattern_type.ebf) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.26e) = var %v.var_patt -// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = name_ref x, %x -// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.a50) = struct_literal (%x.ref) -// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27 (%.db9) = impl_witness_access constants.%Copy.lookup_impl_witness.322, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.4f5)] +// CHECK:STDOUT: %v.var: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.46c) = var %v.var_patt +// CHECK:STDOUT: %x.ref: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = name_ref x, %x +// CHECK:STDOUT: %.loc10_28.1: @InitFromStructGeneric.%struct_type.k (%struct_type.k.92f) = struct_literal (%x.ref) +// CHECK:STDOUT: %impl.elem0.loc10_27.1: @InitFromStructGeneric.%.loc10_27 (%.e56) = impl_witness_access constants.%Copy.lookup_impl_witness.322, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.bab)] // CHECK:STDOUT: %bound_method.loc10_27.1: = bound_method %x.ref, %impl.elem0.loc10_27.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.WithSelf.Op(constants.%Copy.facet.e72) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %specific_impl_fn.loc10_27.1: = specific_impl_function %impl.elem0.loc10_27.1, @Copy.WithSelf.Op(constants.%Copy.facet.856) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.421)] // CHECK:STDOUT: %bound_method.loc10_27.2: = bound_method %x.ref, %specific_impl_fn.loc10_27.1 -// CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = class_element_access %v.var, element0 -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc10: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) to %.loc10_28.2 = call %bound_method.loc10_27.2(%x.ref) -// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) to %.loc10_28.2 = in_place_init %Copy.WithSelf.Op.call.loc10 -// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.26e) to %v.var = class_init (%.loc10_28.3) -// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.26e) = converted %.loc10_28.1, %.loc10_28.4 +// CHECK:STDOUT: %.loc10_28.2: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = class_element_access %v.var, element0 +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc10: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) to %.loc10_28.2 = call %bound_method.loc10_27.2(%x.ref) +// CHECK:STDOUT: %.loc10_28.3: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) to %.loc10_28.2 = in_place_init %Copy.WithSelf.Op.call.loc10 +// CHECK:STDOUT: %.loc10_28.4: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.46c) to %v.var = class_init (%.loc10_28.3) +// CHECK:STDOUT: %.loc10_3.1: init @InitFromStructGeneric.%Class.loc10_17.2 (%Class.46c) = converted %.loc10_28.1, %.loc10_28.4 // CHECK:STDOUT: assign %v.var, %.loc10_3.1 -// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Class.loc10_17.1 [symbolic = %Class.loc10_17.2 (constants.%Class.26e)] { +// CHECK:STDOUT: %.loc10_17.1: type = splice_block %Class.loc10_17.1 [symbolic = %Class.loc10_17.2 (constants.%Class.46c)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] // CHECK:STDOUT: %T.ref.loc10: %facet_type = name_ref T, %T.loc9_27.2 [symbolic = %T.loc9_27.1 (constants.%T.65f)] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.b77)] -// CHECK:STDOUT: %Destroy.facet.loc10_17.1: %Destroy.type = facet_value %T.as_type.loc10, (constants.%Destroy.lookup_impl_witness.84a) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.2ff)] -// CHECK:STDOUT: %.loc10_17.2: %Destroy.type = converted %T.ref.loc10, %Destroy.facet.loc10_17.1 [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.2ff)] -// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%Destroy.facet.2ff) [symbolic = %Class.loc10_17.2 (constants.%Class.26e)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc9_59.1 (constants.%T.as_type.db4)] +// CHECK:STDOUT: %Destroy.facet.loc10_17.1: %Destroy.type = facet_value %T.as_type.loc10, (constants.%Destroy.lookup_impl_witness.84a) [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.5e1)] +// CHECK:STDOUT: %.loc10_17.2: %Destroy.type = converted %T.ref.loc10, %Destroy.facet.loc10_17.1 [symbolic = %Destroy.facet.loc10_17.2 (constants.%Destroy.facet.5e1)] +// CHECK:STDOUT: %Class.loc10_17.1: type = class_type @Class, @Class(constants.%Destroy.facet.5e1) [symbolic = %Class.loc10_17.2 (constants.%Class.46c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.26e) = ref_binding v, %v.var -// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.26e) = name_ref v, %v -// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.851) = name_ref k, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] -// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = class_element_access %v.ref, element0 -// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = acquire_value %.loc11_11.1 -// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27 (%.db9) = impl_witness_access constants.%Copy.lookup_impl_witness.322, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.4f5)] +// CHECK:STDOUT: %v: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.46c) = ref_binding v, %v.var +// CHECK:STDOUT: %v.ref: ref @InitFromStructGeneric.%Class.loc10_17.2 (%Class.46c) = name_ref v, %v +// CHECK:STDOUT: %k.ref: @InitFromStructGeneric.%Class.elem (%Class.elem.ef9) = name_ref k, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] +// CHECK:STDOUT: %.loc11_11.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = class_element_access %v.ref, element0 +// CHECK:STDOUT: %.loc11_11.2: @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = acquire_value %.loc11_11.1 +// CHECK:STDOUT: %impl.elem0.loc11: @InitFromStructGeneric.%.loc10_27 (%.e56) = impl_witness_access constants.%Copy.lookup_impl_witness.322, element0 [symbolic = %impl.elem0.loc10_27.2 (constants.%impl.elem0.bab)] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %.loc11_11.2, %impl.elem0.loc11 -// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.WithSelf.Op(constants.%Copy.facet.e72) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %specific_impl_fn.loc11: = specific_impl_function %impl.elem0.loc11, @Copy.WithSelf.Op(constants.%Copy.facet.856) [symbolic = %specific_impl_fn.loc10_27.2 (constants.%specific_impl_fn.421)] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %.loc11_11.2, %specific_impl_fn.loc11 -// CHECK:STDOUT: %.loc9_65.1: ref @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc11: init @InitFromStructGeneric.%T.binding.as_type (%T.binding.as_type.b77) to %.loc9_65.1 = call %bound_method.loc11_11.2(%.loc11_11.2) -// CHECK:STDOUT: %impl.elem0.loc10_3.1: @InitFromStructGeneric.%.loc10_3.2 (%.c77) = impl_witness_access constants.%Destroy.lookup_impl_witness.59d, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.6f8)] +// CHECK:STDOUT: %.loc9_65.1: ref @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call.loc11: init @InitFromStructGeneric.%T.as_type.loc9_59.1 (%T.as_type.db4) to %.loc9_65.1 = call %bound_method.loc11_11.2(%.loc11_11.2) +// CHECK:STDOUT: %impl.elem0.loc10_3.1: @InitFromStructGeneric.%.loc10_3.2 (%.1fe) = impl_witness_access constants.%Destroy.lookup_impl_witness.488, element0 [symbolic = %impl.elem0.loc10_3.2 (constants.%impl.elem0.ae3)] // CHECK:STDOUT: %bound_method.loc10_3.1: = bound_method %v.var, %impl.elem0.loc10_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.735) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.40b)] +// CHECK:STDOUT: %specific_impl_fn.loc10_3.1: = specific_impl_function %impl.elem0.loc10_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.474) [symbolic = %specific_impl_fn.loc10_3.2 (constants.%specific_impl_fn.4b3)] // CHECK:STDOUT: %bound_method.loc10_3.2: = bound_method %v.var, %specific_impl_fn.loc10_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc10_3.2(%v.var) // CHECK:STDOUT: return %Copy.WithSelf.Op.call.loc11 to %return.param @@ -330,9 +330,9 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromStructGeneric(constants.%T.65f) { // CHECK:STDOUT: %T.loc9_27.1 => constants.%T.65f -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.b77 -// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.2a5 -// CHECK:STDOUT: %.loc9_65.2 => constants.%.e39 +// CHECK:STDOUT: %T.as_type.loc9_59.1 => constants.%T.as_type.db4 +// CHECK:STDOUT: %pattern_type.loc9 => constants.%pattern_type.58d +// CHECK:STDOUT: %.loc9_65.2 => constants.%.a57 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- adapt.carbon @@ -343,14 +343,14 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %InitFromAdaptedGeneric.type: type = fn_type @InitFromAdaptedGeneric [concrete] // CHECK:STDOUT: %InitFromAdaptedGeneric: %InitFromAdaptedGeneric.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Adapt.f64: type = class_type @Adapt, @Adapt(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.888: = require_complete_type %Adapt.f64 [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Adapt.2b1: type = class_type @Adapt, @Adapt(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.619: = require_complete_type %Adapt.2b1 [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -393,30 +393,30 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: file { // CHECK:STDOUT: %InitFromAdaptedGeneric.decl: %InitFromAdaptedGeneric.type = fn_decl @InitFromAdaptedGeneric [concrete = constants.%InitFromAdaptedGeneric] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc9_51.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @InitFromAdaptedGeneric.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc9_51.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_51: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc9_51: type = facet_access_type %T.ref.loc9_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_51.3: type = converted %T.ref.loc9_51, %T.as_type.loc9_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_51.4: Core.Form = init_form %.loc9_51.3 [symbolic = %.loc9_51.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc9_51: type = facet_access_type %T.ref.loc9_51 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_51.3: type = converted %T.ref.loc9_51, %T.as_type.loc9_51 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_51.4: Core.Form = init_form %.loc9_51.3 [symbolic = %.loc9_51.2 (constants.%.435d17.2)] // CHECK:STDOUT: %.loc9_35: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_28.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_45.1: type = splice_block %.loc9_45.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_45.1: type = splice_block %.loc9_45.2 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc9_45: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc9_45: type = facet_access_type %T.ref.loc9_45 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_45.2: type = converted %T.ref.loc9_45, %T.as_type.loc9_45 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_45.2: type = facet_access_type %T.ref.loc9_45 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_45.2: type = converted %T.ref.loc9_45, %T.as_type.loc9_45.2 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [concrete = constants.%InitFromAdaptedSpecific] { // CHECK:STDOUT: %x.param_patt: %pattern_type.7ce = value_param_pattern [concrete] @@ -436,41 +436,41 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @InitFromAdaptedGeneric(%T.loc9_28.2: %Copy.type) { // CHECK:STDOUT: %T.loc9_28.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_28.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc9_51.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc9_51.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc9_45.1: type = facet_access_type %T.loc9_28.1 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_45.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc9_51.2: Core.Form = init_form %T.as_type.loc9_45.1 [symbolic = %.loc9_51.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.67c)] -// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.binding.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.f64)] -// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.888)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc9_45.1 [symbolic = %require_complete.loc9 (constants.%require_complete.89e)] +// CHECK:STDOUT: %Adapt.loc10_23.2: type = class_type @Adapt, @Adapt(%T.as_type.loc9_45.1) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.2b1)] +// CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Adapt.loc10_23.2 [symbolic = %require_complete.loc10 (constants.%require_complete.619)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc9_28.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc10_26.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc9_28.1 [symbolic = %.loc10_26.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc9_28.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc10_26.2: @InitFromAdaptedGeneric.%.loc10_26.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc10_26.2: = specific_impl_function %impl.elem0.loc10_26.2, @Copy.WithSelf.Op(%T.loc9_28.1) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type)) -> out %return.param: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Adapt.ref: %Adapt.type = name_ref Adapt, file.%Adapt.decl [concrete = constants.%Adapt.generic] // CHECK:STDOUT: %T.ref.loc10_22: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc10_23: type = facet_access_type %T.ref.loc10_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_23: type = converted %T.ref.loc10_22, %T.as_type.loc10_23 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Adapt.loc10_23.1: type = class_type @Adapt, @Adapt(constants.%T.binding.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.f64)] -// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.f64) = as_compatible %x.ref -// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.f64) = converted %x.ref, %.loc10_13.1 +// CHECK:STDOUT: %T.as_type.loc10_23: type = facet_access_type %T.ref.loc10_22 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_23: type = converted %T.ref.loc10_22, %T.as_type.loc10_23 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Adapt.loc10_23.1: type = class_type @Adapt, @Adapt(constants.%T.as_type) [symbolic = %Adapt.loc10_23.2 (constants.%Adapt.2b1)] +// CHECK:STDOUT: %.loc10_13.1: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.2b1) = as_compatible %x.ref +// CHECK:STDOUT: %.loc10_13.2: @InitFromAdaptedGeneric.%Adapt.loc10_23.2 (%Adapt.2b1) = converted %x.ref, %.loc10_13.1 // CHECK:STDOUT: %T.ref.loc10_29: %Copy.type = name_ref T, %T.loc9_28.2 [symbolic = %T.loc9_28.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc10_29: type = facet_access_type %T.ref.loc10_29 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_29: type = converted %T.ref.loc10_29, %T.as_type.loc10_29 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_26.1: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = as_compatible %.loc10_13.2 -// CHECK:STDOUT: %.loc10_26.2: @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = converted %.loc10_13.2, %.loc10_26.1 +// CHECK:STDOUT: %T.as_type.loc10_29: type = facet_access_type %T.ref.loc10_29 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_29: type = converted %T.ref.loc10_29, %T.as_type.loc10_29 [symbolic = %T.as_type.loc9_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_26.1: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = as_compatible %.loc10_13.2 +// CHECK:STDOUT: %.loc10_26.2: @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = converted %.loc10_13.2, %.loc10_26.1 // CHECK:STDOUT: %impl.elem0.loc10_26.1: @InitFromAdaptedGeneric.%.loc10_26.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc10_26.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc10_26.1: = bound_method %.loc10_26.2, %impl.elem0.loc10_26.1 // CHECK:STDOUT: %specific_impl_fn.loc10_26.1: = specific_impl_function %impl.elem0.loc10_26.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc10_26.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc10_26.2: = bound_method %.loc10_26.2, %specific_impl_fn.loc10_26.1 -// CHECK:STDOUT: %.loc9_51.1: ref @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @InitFromAdaptedGeneric.%T.binding.as_type (%T.binding.as_type) to %.loc9_51.1 = call %bound_method.loc10_26.2(%.loc10_26.2) +// CHECK:STDOUT: %.loc9_51.1: ref @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @InitFromAdaptedGeneric.%T.as_type.loc9_45.1 (%T.as_type) to %.loc9_51.1 = call %bound_method.loc10_26.2(%.loc10_26.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -496,8 +496,8 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @InitFromAdaptedGeneric(constants.%T.035) { // CHECK:STDOUT: %T.loc9_28.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc9_51.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc9_45.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc9_51.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_access.carbon b/toolchain/check/testdata/class/generic/member_access.carbon index 3bfbe78aa8a3..02693c9b5bcf 100644 --- a/toolchain/check/testdata/class/generic/member_access.carbon +++ b/toolchain/check/testdata/class/generic/member_access.carbon @@ -68,21 +68,21 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Class.847: type = class_type @Class, @Class(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Class.elem.05d: type = unbound_element_type %Class.847, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.elem.555: type = unbound_element_type %Class.847, %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.893: type = pattern_type %Class.847 [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Class.Get.type.8ea: type = fn_type @Class.Get, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.Get.7d3: %Class.Get.type.8ea = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.e7d: type = ptr_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.66f: Core.Form = init_form %ptr.e7d [symbolic] -// CHECK:STDOUT: %pattern_type.65a: type = pattern_type %ptr.e7d [symbolic] +// CHECK:STDOUT: %ptr.de9: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %.0dc: Core.Form = init_form %ptr.de9 [symbolic] +// CHECK:STDOUT: %pattern_type.af2: type = pattern_type %ptr.de9 [symbolic] // CHECK:STDOUT: %Class.GetAddr.type.437: type = fn_type @Class.GetAddr, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.GetAddr.7a1: %Class.GetAddr.type.437 = struct_value () [symbolic] -// CHECK:STDOUT: %struct_type.x.8dc: type = struct_type {.x: %T.binding.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.e78: = complete_type_witness %struct_type.x.8dc [symbolic] +// CHECK:STDOUT: %struct_type.x.9cf: type = struct_type {.x: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.bb6: = complete_type_witness %struct_type.x.9cf [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -91,13 +91,13 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.2d4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.74e: %ptr.as.Copy.impl.Op.type.2d4 = struct_value () [symbolic] -// CHECK:STDOUT: %Copy.lookup_impl_witness.2e7: = lookup_impl_witness %ptr.e7d, @Copy [symbolic] -// CHECK:STDOUT: %.3a3: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %Copy.facet.8e7: %Copy.type = facet_value %ptr.e7d, (%Copy.lookup_impl_witness.2e7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.486: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.8e7) [symbolic] -// CHECK:STDOUT: %.b63: type = fn_type_with_self_type %Copy.WithSelf.Op.type.486, %Copy.facet.8e7 [symbolic] -// CHECK:STDOUT: %impl.elem0.387: %.b63 = impl_witness_access %Copy.lookup_impl_witness.2e7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.7f8: = specific_impl_function %impl.elem0.387, @Copy.WithSelf.Op(%Copy.facet.8e7) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.b83: = lookup_impl_witness %ptr.de9, @Copy [symbolic] +// CHECK:STDOUT: %.e85: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type) [symbolic] +// CHECK:STDOUT: %Copy.facet.24d: %Copy.type = facet_value %ptr.de9, (%Copy.lookup_impl_witness.b83) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.eb1: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.24d) [symbolic] +// CHECK:STDOUT: %.113: type = fn_type_with_self_type %Copy.WithSelf.Op.type.eb1, %Copy.facet.24d [symbolic] +// CHECK:STDOUT: %impl.elem0.10e: %.113 = impl_witness_access %Copy.lookup_impl_witness.b83, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.d14: = specific_impl_function %impl.elem0.10e, @Copy.WithSelf.Op(%Copy.facet.24d) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -171,26 +171,26 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.05d)] -// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_27.1 [symbolic = %Class.elem (constants.%Class.elem.555)] +// CHECK:STDOUT: %require_complete.loc9: = require_complete_type %T.as_type.loc7_27.1 [symbolic = %require_complete.loc9 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc9_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_16.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc9_16.2: @Class.Get.%.loc9_16.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc9_16.2: = specific_impl_function %impl.elem0.loc9_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.847)) -> out %return.param: @Class.Get.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.Get.%Class (%Class.847)) -> out %return.param: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.Get.%Class (%Class.847) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.05d) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] -// CHECK:STDOUT: %.loc9_16.1: ref @Class.Get.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc9_16.2: @Class.Get.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc9_16.1 +// CHECK:STDOUT: %x.ref: @Class.Get.%Class.elem (%Class.elem.555) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] +// CHECK:STDOUT: %.loc9_16.1: ref @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc9_16.2: @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) = acquire_value %.loc9_16.1 // CHECK:STDOUT: %impl.elem0.loc9_16.1: @Class.Get.%.loc9_16.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc9_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc9_16.1: = bound_method %.loc9_16.2, %impl.elem0.loc9_16.1 // CHECK:STDOUT: %specific_impl_fn.loc9_16.1: = specific_impl_function %impl.elem0.loc9_16.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc9_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc9_16.2: = bound_method %.loc9_16.2, %specific_impl_fn.loc9_16.1 // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.Get.%T.binding.as_type (%T.binding.as_type) to %.loc7_27.1 = call %bound_method.loc9_16.2(%.loc9_16.2) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.Get.%T.as_type.loc7_27.1 (%T.as_type) to %.loc7_27.1 = call %bound_method.loc9_16.2(%.loc9_16.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -200,26 +200,26 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem.05d)] -// CHECK:STDOUT: %.loc15_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc15_12.1 (constants.%.3a3)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.2e7)] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.8e7)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.486)] -// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.b63)] -// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.b63) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.387)] -// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.7f8)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc13_36.1 [symbolic = %Class.elem (constants.%Class.elem.555)] +// CHECK:STDOUT: %.loc15_12.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc13_36.1) [symbolic = %.loc15_12.1 (constants.%.e85)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr.loc13_36.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.b83)] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.loc13_36.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.24d)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.eb1)] +// CHECK:STDOUT: %.loc15_12.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc15_12.2 (constants.%.113)] +// CHECK:STDOUT: %impl.elem0.loc15_12.2: @Class.GetAddr.%.loc15_12.2 (%.113) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.10e)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.2: = specific_impl_function %impl.elem0.loc15_12.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.d14)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class.847)) -> out %return.param: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.e7d) { +// CHECK:STDOUT: fn(%self.param: ref @Class.GetAddr.%Class (%Class.847)) -> out %return.param: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.de9) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: ref @Class.GetAddr.%Class (%Class.847) = name_ref self, %self -// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.05d) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] -// CHECK:STDOUT: %.loc15_17: ref @Class.GetAddr.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.e7d) = addr_of %.loc15_17 -// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.b63) = impl_witness_access constants.%Copy.lookup_impl_witness.2e7, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.387)] +// CHECK:STDOUT: %x.ref: @Class.GetAddr.%Class.elem (%Class.elem.555) = name_ref x, @Class.%.loc5_8 [concrete = @Class.%.loc5_8] +// CHECK:STDOUT: %.loc15_17: ref @Class.GetAddr.%T.as_type.loc13_36.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %addr: @Class.GetAddr.%ptr.loc13_36.1 (%ptr.de9) = addr_of %.loc15_17 +// CHECK:STDOUT: %impl.elem0.loc15_12.1: @Class.GetAddr.%.loc15_12.2 (%.113) = impl_witness_access constants.%Copy.lookup_impl_witness.b83, element0 [symbolic = %impl.elem0.loc15_12.2 (constants.%impl.elem0.10e)] // CHECK:STDOUT: %bound_method.loc15_12.1: = bound_method %addr, %impl.elem0.loc15_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc15_12.1: = specific_impl_function %impl.elem0.loc15_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.8e7) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.7f8)] +// CHECK:STDOUT: %specific_impl_fn.loc15_12.1: = specific_impl_function %impl.elem0.loc15_12.1, @Copy.WithSelf.Op(constants.%Copy.facet.24d) [symbolic = %specific_impl_fn.loc15_12.2 (constants.%specific_impl_fn.d14)] // CHECK:STDOUT: %bound_method.loc15_12.2: = bound_method %addr, %specific_impl_fn.loc15_12.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc13_36.1 (%ptr.e7d) = call %bound_method.loc15_12.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.GetAddr.%ptr.loc13_36.1 (%ptr.de9) = call %bound_method.loc15_12.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -276,42 +276,42 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%T.035 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %T.as_type.loc5_10.2 => constants.%T.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Class => constants.%Class.847 -// CHECK:STDOUT: %Class.elem => constants.%Class.elem.05d +// CHECK:STDOUT: %Class.elem => constants.%Class.elem.555 // CHECK:STDOUT: %Class.Get.type => constants.%Class.Get.type.8ea // CHECK:STDOUT: %Class.Get => constants.%Class.Get.7d3 // CHECK:STDOUT: %Class.GetAddr.type => constants.%Class.GetAddr.type.437 // CHECK:STDOUT: %Class.GetAddr => constants.%Class.GetAddr.7a1 -// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.8dc -// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.e78 +// CHECK:STDOUT: %struct_type.x => constants.%struct_type.x.9cf +// CHECK:STDOUT: %complete_type.loc18_1.2 => constants.%complete_type.bb6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.Get(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class.847 // CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc7_27.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc7_27.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.GetAddr(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class.847 // CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.e7d -// CHECK:STDOUT: %.loc13_36.1 => constants.%.66f -// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.65a +// CHECK:STDOUT: %T.as_type.loc13_36.1 => constants.%T.as_type +// CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.de9 +// CHECK:STDOUT: %.loc13_36.1 => constants.%.0dc +// CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.af2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%Copy.facet.de4) { // CHECK:STDOUT: %T.loc4_14.1 => constants.%Copy.facet.de4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc5_10.2 => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: %Class => constants.%Class.06a // CHECK:STDOUT: %Class.elem => constants.%Class.elem.da5 @@ -327,7 +327,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 // CHECK:STDOUT: %Class => constants.%Class.06a // CHECK:STDOUT: %pattern_type.loc7_14 => constants.%pattern_type.cea -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%i32 // CHECK:STDOUT: %.loc7_27.2 => constants.%.ff5 // CHECK:STDOUT: %pattern_type.loc7_27 => constants.%pattern_type.7ce // CHECK:STDOUT: @@ -346,7 +346,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 // CHECK:STDOUT: %Class => constants.%Class.06a // CHECK:STDOUT: %pattern_type.loc13_22 => constants.%pattern_type.cea -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc13_36.1 => constants.%i32 // CHECK:STDOUT: %ptr.loc13_36.1 => constants.%ptr.235 // CHECK:STDOUT: %.loc13_36.1 => constants.%.605 // CHECK:STDOUT: %pattern_type.loc13_36 => constants.%pattern_type.fe8 diff --git a/toolchain/check/testdata/class/generic/member_inline.carbon b/toolchain/check/testdata/class/generic/member_inline.carbon index f4b07435a1b5..c0f943984874 100644 --- a/toolchain/check/testdata/class/generic/member_inline.carbon +++ b/toolchain/check/testdata/class/generic/member_inline.carbon @@ -54,17 +54,17 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.893: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] @@ -104,56 +104,56 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.F: @Class.%Class.F.type (%Class.F.type) = struct_value () [symbolic = %Class.F (constants.%Class.F)] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.loc5_14.1) [symbolic = %Class.G.type (constants.%Class.G.type)] // CHECK:STDOUT: %Class.G: @Class.%Class.G.type (%Class.G.type) = struct_value () [symbolic = %Class.G (constants.%Class.G)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_14.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %T.as_type.loc14_10.2: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc14_10.2 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc14_10.2 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.as_type.loc14_10.2 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc15_1.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc15_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc6_17.3 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc6_17.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_17.3: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_17.4: Core.Form = init_form %.loc6_17.3 [symbolic = %.loc6_17.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %n.param: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_17.3: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_17.4: Core.Form = init_form %.loc6_17.3 [symbolic = %.loc6_17.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc6_11: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc6_11.2: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_binding n, %n.param -// CHECK:STDOUT: %return.param: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %n: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_binding n, %n.param +// CHECK:STDOUT: %return.param: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.893) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc10_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_25.3 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc10_25 (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc10_25.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_25.3: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_25.4: Core.Form = init_form %.loc10_25.3 [symbolic = %.loc10_25.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc10_25.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_25.3: type = converted %T.ref, %T.as_type.loc10_25.2 [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_25.4: Core.Form = init_form %.loc10_25.3 [symbolic = %.loc10_25.2 (constants.%.435d17.2)] // CHECK:STDOUT: %self.param: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc10_14.1: type = splice_block %Self.ref [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc10_14.2: type = specific_constant constants.%Class, @Class(constants.%T.035) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc10_14.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self: @Class.G.%Class (%Class) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc14_10: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_10.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc14_10: type = converted %T.ref, %T.as_type.loc14_10.1 [symbolic = %T.as_type.loc14_10.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc14_8: @Class.%Class.elem (%Class.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %complete_type.loc15_1.1: = complete_type_witness constants.%struct_type.n [symbolic = %complete_type.loc15_1.2 (constants.%complete_type)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc15_1.1 @@ -169,27 +169,27 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_14.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc6_17.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc6_17.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc6_17.2: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc7: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc7_12.2: @Class.F.%.loc7 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc7_12.2: = specific_impl_function %impl.elem0.loc7_12.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @Class.F.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @Class.F.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%n.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> out %return.param: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @Class.F.%T.binding.as_type (%T.binding.as_type) = name_ref n, %n +// CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n // CHECK:STDOUT: %impl.elem0.loc7_12.1: @Class.F.%.loc7 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc7_12.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc7_12.1: = bound_method %n.ref, %impl.elem0.loc7_12.1 // CHECK:STDOUT: %specific_impl_fn.loc7_12.1: = specific_impl_function %impl.elem0.loc7_12.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc7_12.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc7_12.2: = bound_method %n.ref, %specific_impl_fn.loc7_12.1 -// CHECK:STDOUT: %.loc6_17.1: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.binding.as_type (%T.binding.as_type) to %.loc6_17.1 = call %bound_method.loc7_12.2(%n.ref) +// CHECK:STDOUT: %.loc6_17.1: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) to %.loc6_17.1 = call %bound_method.loc7_12.2(%n.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -198,32 +198,32 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc10_12: type = pattern_type %Class [symbolic = %pattern_type.loc10_12 (constants.%pattern_type.893)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_25.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc10_25.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc10_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc10_25 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc10_25.1: type = facet_access_type %T [symbolic = %T.as_type.loc10_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_25.2: Core.Form = init_form %T.as_type.loc10_25.1 [symbolic = %.loc10_25.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %pattern_type.loc10_25: type = pattern_type %T.as_type.loc10_25.1 [symbolic = %pattern_type.loc10_25 (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc10: = require_complete_type %Class [symbolic = %require_complete.loc10 (constants.%require_complete.904)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc11 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc10_25.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %require_complete.loc11: = require_complete_type %T.as_type.loc10_25.1 [symbolic = %require_complete.loc11 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc11_16.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc11_16.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc11_16.2: @Class.G.%.loc11_16.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc11_16.2: = specific_impl_function %impl.elem0.loc11_16.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> out %return.param: @Class.G.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%self.param: @Class.G.%Class (%Class)) -> out %return.param: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.G.%Class (%Class) = name_ref self, %self // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc14_8 [concrete = @Class.%.loc14_8] -// CHECK:STDOUT: %.loc11_16.1: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc11_16.2: @Class.G.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc11_16.1 +// CHECK:STDOUT: %.loc11_16.1: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc11_16.2: @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = acquire_value %.loc11_16.1 // CHECK:STDOUT: %impl.elem0.loc11_16.1: @Class.G.%.loc11_16.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc11_16.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc11_16.1: = bound_method %.loc11_16.2, %impl.elem0.loc11_16.1 // CHECK:STDOUT: %specific_impl_fn.loc11_16.1: = specific_impl_function %impl.elem0.loc11_16.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc11_16.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc11_16.2: = bound_method %.loc11_16.2, %specific_impl_fn.loc11_16.1 -// CHECK:STDOUT: %.loc10_25.1: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.binding.as_type (%T.binding.as_type) to %.loc10_25.1 = call %bound_method.loc11_16.2(%.loc11_16.2) +// CHECK:STDOUT: %.loc10_25.1: ref @Class.G.%T.as_type.loc10_25.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.as_type.loc10_25.1 (%T.as_type) to %.loc10_25.1 = call %bound_method.loc11_16.2(%.loc11_16.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -236,8 +236,8 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: %Class.F => constants.%Class.F // CHECK:STDOUT: %Class.G.type => constants.%Class.G.type // CHECK:STDOUT: %Class.G => constants.%Class.G -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %T.as_type.loc14_10.2 => constants.%T.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n @@ -246,18 +246,18 @@ class C(T:! Core.Copy) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.F(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc6_17.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc6_17.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.G(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc10_12 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc10_25.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc10_25 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc10_25.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc10_25.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc10_25 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_member_inline_missing_self_dot.carbon diff --git a/toolchain/check/testdata/class/generic/member_lookup.carbon b/toolchain/check/testdata/class/generic/member_lookup.carbon index 31aa1b03a833..1d32eaec4b3f 100644 --- a/toolchain/check/testdata/class/generic/member_lookup.carbon +++ b/toolchain/check/testdata/class/generic/member_lookup.carbon @@ -81,16 +81,16 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %Derived.ad7: type = class_type @Derived, @Derived(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %pattern_type.d85: type = pattern_type %Derived.ad7 [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Base.ab3: type = class_type @Base, @Base(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.b68: = require_complete_type %Base.ab3 [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Derived.elem.d6f: type = unbound_element_type %Derived.ad7, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Base.elem.384: type = unbound_element_type %Base.ab3, %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %Derived.b58: type = class_type @Derived, @Derived(%T.as_type) [symbolic] +// CHECK:STDOUT: %pattern_type.be2: type = pattern_type %Derived.b58 [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Base.7da: type = class_type @Base, @Base(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.692: = require_complete_type %Base.7da [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Derived.elem.f94: type = unbound_element_type %Derived.b58, %T.as_type [symbolic] +// CHECK:STDOUT: %Base.elem.90f: type = unbound_element_type %Base.7da, %T.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -103,26 +103,26 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.binding.as_type [symbolic = %Derived.elem (constants.%Derived.elem.d6f)] -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc15 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Derived.elem: type = unbound_element_type %Derived.loc13_45.1, %T.as_type.loc13_45.1 [symbolic = %Derived.elem (constants.%Derived.elem.f94)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %T.as_type.loc13_45.1 [symbolic = %require_complete.loc15 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc13_19.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc15_11.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc13_19.1 [symbolic = %.loc15_11.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc13_19.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc15_11.2: @AccessDerived.%.loc15_11.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc15_11.2: = specific_impl_function %impl.elem0.loc15_11.2, @Copy.WithSelf.Op(%T.loc13_19.1) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.ad7)) -> out %return.param: @AccessDerived.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessDerived.%Derived.loc13_45.1 (%Derived.b58)) -> out %return.param: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.ad7) = name_ref x, %x -// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.d6f) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] -// CHECK:STDOUT: %.loc15_11.1: ref @AccessDerived.%T.binding.as_type (%T.binding.as_type) = class_element_access %x.ref, element1 -// CHECK:STDOUT: %.loc15_11.2: @AccessDerived.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc15_11.1 +// CHECK:STDOUT: %x.ref: @AccessDerived.%Derived.loc13_45.1 (%Derived.b58) = name_ref x, %x +// CHECK:STDOUT: %d.ref: @AccessDerived.%Derived.elem (%Derived.elem.f94) = name_ref d, @Derived.%.loc10 [concrete = @Derived.%.loc10] +// CHECK:STDOUT: %.loc15_11.1: ref @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = class_element_access %x.ref, element1 +// CHECK:STDOUT: %.loc15_11.2: @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) = acquire_value %.loc15_11.1 // CHECK:STDOUT: %impl.elem0.loc15_11.1: @AccessDerived.%.loc15_11.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc15_11.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc15_11.1: = bound_method %.loc15_11.2, %impl.elem0.loc15_11.1 // CHECK:STDOUT: %specific_impl_fn.loc15_11.1: = specific_impl_function %impl.elem0.loc15_11.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc15_11.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc15_11.2: = bound_method %.loc15_11.2, %specific_impl_fn.loc15_11.1 // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessDerived.%T.binding.as_type (%T.binding.as_type) to %.loc13_51.1 = call %bound_method.loc15_11.2(%.loc15_11.2) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessDerived.%T.as_type.loc13_45.1 (%T.as_type) to %.loc13_51.1 = call %bound_method.loc15_11.2(%.loc15_11.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -132,49 +132,49 @@ fn AccessMissingConcrete(x: Derived(i32)) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.binding.as_type) [symbolic = %Base (constants.%Base.ab3)] -// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.b68)] -// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.binding.as_type [symbolic = %Base.elem (constants.%Base.elem.384)] -// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc21_13 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Base: type = class_type @Base, @Base(%T.as_type.loc19_42.1) [symbolic = %Base (constants.%Base.7da)] +// CHECK:STDOUT: %require_complete.loc21_11: = require_complete_type %Base [symbolic = %require_complete.loc21_11 (constants.%require_complete.692)] +// CHECK:STDOUT: %Base.elem: type = unbound_element_type %Base, %T.as_type.loc19_42.1 [symbolic = %Base.elem (constants.%Base.elem.90f)] +// CHECK:STDOUT: %require_complete.loc21_13: = require_complete_type %T.as_type.loc19_42.1 [symbolic = %require_complete.loc21_13 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc19_16.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc21_11.5: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc19_16.1 [symbolic = %.loc21_11.5 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc19_16.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc21_11.2: @AccessBase.%.loc21_11.5 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc21_11.2: = specific_impl_function %impl.elem0.loc21_11.2, @Copy.WithSelf.Op(%T.loc19_16.1) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.ad7)) -> out %return.param: @AccessBase.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @AccessBase.%Derived.loc19_42.1 (%Derived.b58)) -> out %return.param: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.ad7) = name_ref x, %x -// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.384) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] -// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.ab3) = class_element_access %x.ref, element0 -// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.ab3) = converted %x.ref, %.loc21_11.1 -// CHECK:STDOUT: %.loc21_11.3: ref @AccessBase.%T.binding.as_type (%T.binding.as_type) = class_element_access %.loc21_11.2, element0 -// CHECK:STDOUT: %.loc21_11.4: @AccessBase.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc21_11.3 +// CHECK:STDOUT: %x.ref: @AccessBase.%Derived.loc19_42.1 (%Derived.b58) = name_ref x, %x +// CHECK:STDOUT: %b.ref: @AccessBase.%Base.elem (%Base.elem.90f) = name_ref b, @Base.%.loc5 [concrete = @Base.%.loc5] +// CHECK:STDOUT: %.loc21_11.1: ref @AccessBase.%Base (%Base.7da) = class_element_access %x.ref, element0 +// CHECK:STDOUT: %.loc21_11.2: ref @AccessBase.%Base (%Base.7da) = converted %x.ref, %.loc21_11.1 +// CHECK:STDOUT: %.loc21_11.3: ref @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = class_element_access %.loc21_11.2, element0 +// CHECK:STDOUT: %.loc21_11.4: @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) = acquire_value %.loc21_11.3 // CHECK:STDOUT: %impl.elem0.loc21_11.1: @AccessBase.%.loc21_11.5 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc21_11.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc21_11.1: = bound_method %.loc21_11.4, %impl.elem0.loc21_11.1 // CHECK:STDOUT: %specific_impl_fn.loc21_11.1: = specific_impl_function %impl.elem0.loc21_11.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc21_11.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc21_11.2: = bound_method %.loc21_11.4, %specific_impl_fn.loc21_11.1 // CHECK:STDOUT: -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessBase.%T.binding.as_type (%T.binding.as_type) to %.loc19_48.1 = call %bound_method.loc21_11.2(%.loc21_11.4) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @AccessBase.%T.as_type.loc19_42.1 (%T.as_type) to %.loc19_48.1 = call %bound_method.loc21_11.2(%.loc21_11.4) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessDerived(constants.%T.035) { // CHECK:STDOUT: %T.loc13_19.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.ad7 -// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.d85 -// CHECK:STDOUT: %.loc13_51.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc13_51 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc13_45.1 => constants.%T.as_type +// CHECK:STDOUT: %Derived.loc13_45.1 => constants.%Derived.b58 +// CHECK:STDOUT: %pattern_type.loc13_34 => constants.%pattern_type.be2 +// CHECK:STDOUT: %.loc13_51.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc13_51 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AccessBase(constants.%T.035) { // CHECK:STDOUT: %T.loc19_16.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.ad7 -// CHECK:STDOUT: %pattern_type.loc19_31 => constants.%pattern_type.d85 -// CHECK:STDOUT: %.loc19_48.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc19_48 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc19_42.1 => constants.%T.as_type +// CHECK:STDOUT: %Derived.loc19_42.1 => constants.%Derived.b58 +// CHECK:STDOUT: %pattern_type.loc19_31 => constants.%pattern_type.be2 +// CHECK:STDOUT: %.loc19_48.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc19_48 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/class/generic/member_out_of_line.carbon b/toolchain/check/testdata/class/generic/member_out_of_line.carbon index 71f96425151a..23bbe4f10f33 100644 --- a/toolchain/check/testdata/class/generic/member_out_of_line.carbon +++ b/toolchain/check/testdata/class/generic/member_out_of_line.carbon @@ -121,17 +121,17 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %Class.type: type = generic_class_type @Class [concrete] // CHECK:STDOUT: %Class.generic: %Class.type = struct_value () [concrete] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Class.F.type: type = fn_type @Class.F, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.F: %Class.F.type = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.893: type = pattern_type %Class [symbolic] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.035) [symbolic] // CHECK:STDOUT: %Class.G: %Class.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.binding.as_type} [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: %T.as_type} [symbolic] // CHECK:STDOUT: %complete_type: = complete_type_witness %struct_type.n [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] @@ -162,10 +162,10 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.035)] // CHECK:STDOUT: } // CHECK:STDOUT: %Class.F.decl: %Class.F.type = fn_decl @Class.F [symbolic = constants.%Class.F] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -174,24 +174,24 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc11: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.035)] // CHECK:STDOUT: %T.ref.loc11_36: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc11_36: type = facet_access_type %T.ref.loc11_36 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc11_36.2: type = converted %T.ref.loc11_36, %T.as_type.loc11_36 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc11_36.3: Core.Form = init_form %.loc11_36.2 [symbolic = %.loc6_17.1 (constants.%.076a48.2)] -// CHECK:STDOUT: %n.param.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc11_30.1: type = splice_block %.loc11_30.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %T.as_type.loc11_36: type = facet_access_type %T.ref.loc11_36 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_36.2: type = converted %T.ref.loc11_36, %T.as_type.loc11_36 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_36.3: Core.Form = init_form %.loc11_36.2 [symbolic = %.loc6_17.1 (constants.%.435d17.2)] +// CHECK:STDOUT: %n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc11_30.1: type = splice_block %.loc11_30.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc11_30: %Copy.type = name_ref T, %T.loc11 [symbolic = %T.loc6 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc11_30: type = facet_access_type %T.ref.loc11_30 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc11_30.2: type = converted %T.ref.loc11_30, %T.as_type.loc11_30 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc11_30: type = facet_access_type %T.ref.loc11_30 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc11_30.2: type = converted %T.ref.loc11_30, %T.as_type.loc11_30 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %n.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_binding n, %n.param.loc11 -// CHECK:STDOUT: %return.param.loc11: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return.loc11: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc11 +// CHECK:STDOUT: %n.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_binding n, %n.param.loc11 +// CHECK:STDOUT: %return.param.loc11: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return.loc11: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: %Class.G.type = fn_decl @Class.G [symbolic = constants.%Class.G] { // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: @@ -200,17 +200,17 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15: %Copy.type = symbolic_binding T, 0 [symbolic = @Class.%T.loc5_14.1 (constants.%T.035)] // CHECK:STDOUT: %T.ref.loc15: %Copy.type = name_ref T, %T.loc15 [symbolic = %T.loc7 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_44.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_44.3: Core.Form = init_form %.loc15_44.2 [symbolic = %.loc7_25.1 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_44.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_44.3: Core.Form = init_form %.loc15_44.2 [symbolic = %.loc7_25.1 (constants.%.435d17.2)] // CHECK:STDOUT: %self.param.loc15: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc15_33.1: type = splice_block %Self.ref.loc15 [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc15_33.2: type = specific_constant constants.%Class, @Class(constants.%T.035) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref.loc15: type = name_ref Self, %.loc15_33.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc15: @Class.G.%Class (%Class) = value_binding self, %self.param.loc15 -// CHECK:STDOUT: %return.param.loc15: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return.loc15: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc15 +// CHECK:STDOUT: %return.param.loc15: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return.loc15: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = return_slot %return.param.loc15 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -222,56 +222,56 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %Class.F: @Class.%Class.F.type (%Class.F.type) = struct_value () [symbolic = %Class.F (constants.%Class.F)] // CHECK:STDOUT: %Class.G.type: type = fn_type @Class.G, @Class(%T.loc5_14.1) [symbolic = %Class.G.type (constants.%Class.G.type)] // CHECK:STDOUT: %Class.G: @Class.%Class.G.type (%Class.G.type) = struct_value () [symbolic = %Class.G (constants.%Class.G)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_14.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %T.as_type.loc8_10.2: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc8_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_10.2 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc5_14.1) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc8_10.2 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Class.%T.as_type.loc8_10.2 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n)] // CHECK:STDOUT: %complete_type.loc9_1.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc9_1.2 (constants.%complete_type)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %Class.F.decl: @Class.%Class.F.type (%Class.F.type) = fn_decl @Class.F [symbolic = @Class.%Class.F (constants.%Class.F)] { -// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] +// CHECK:STDOUT: %n.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.F.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc11_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc6_17: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_17.2: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_17.3: Core.Form = init_form %.loc6_17.2 [symbolic = %.loc6_17.1 (constants.%.076a48.2)] -// CHECK:STDOUT: %n.param.loc6: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %T.as_type.loc6_17: type = facet_access_type %T.ref.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_17.2: type = converted %T.ref.loc6_17, %T.as_type.loc6_17 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_17.3: Core.Form = init_form %.loc6_17.2 [symbolic = %.loc6_17.1 (constants.%.435d17.2)] +// CHECK:STDOUT: %n.param.loc6: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_11.1: type = splice_block %.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc6_11: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc6 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc6_11: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc6_11.2: type = facet_access_type %T.ref.loc6_11 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_11.2: type = converted %T.ref.loc6_11, %T.as_type.loc6_11.2 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %n.loc6: @Class.F.%T.binding.as_type (%T.binding.as_type) = value_binding n, %n.param.loc6 -// CHECK:STDOUT: %return.param.loc6: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return.loc6: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc6 +// CHECK:STDOUT: %n.loc6: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = value_binding n, %n.param.loc6 +// CHECK:STDOUT: %return.param.loc6: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return.loc6: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = return_slot %return.param.loc6 // CHECK:STDOUT: } // CHECK:STDOUT: %Class.G.decl: @Class.%Class.G.type (%Class.G.type) = fn_decl @Class.G [symbolic = @Class.%Class.G (constants.%Class.G)] { // CHECK:STDOUT: %self.param_patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Class.G.%pattern_type.loc7_12 (%pattern_type.893) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] +// CHECK:STDOUT: %return.param_patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Class.G.%pattern_type.loc7_25 (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc15_44.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc7: %Copy.type = name_ref T, @Class.%T.loc5_14.2 [symbolic = %T.loc7 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_25.2: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_25.3: Core.Form = init_form %.loc7_25.2 [symbolic = %.loc7_25.1 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc7_25.2: type = facet_access_type %T.ref.loc7 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_25.2: type = converted %T.ref.loc7, %T.as_type.loc7_25.2 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_25.3: Core.Form = init_form %.loc7_25.2 [symbolic = %.loc7_25.1 (constants.%.435d17.2)] // CHECK:STDOUT: %self.param.loc7: @Class.G.%Class (%Class) = value_param call_param0 // CHECK:STDOUT: %.loc7_14.1: type = splice_block %Self.ref.loc7 [symbolic = %Class (constants.%Class)] { // CHECK:STDOUT: %.loc7_14.2: type = specific_constant constants.%Class, @Class(constants.%T.035) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %Self.ref.loc7: type = name_ref Self, %.loc7_14.2 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: } // CHECK:STDOUT: %self.loc7: @Class.G.%Class (%Class) = value_binding self, %self.param.loc7 -// CHECK:STDOUT: %return.param.loc7: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return.loc7: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param.loc7 +// CHECK:STDOUT: %return.param.loc7: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return.loc7: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = return_slot %return.param.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_10: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_10.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_10.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_10: type = converted %T.ref, %T.as_type.loc8_10.1 [symbolic = %T.as_type.loc8_10.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc8_8: @Class.%Class.elem (%Class.elem) = field_decl n, element0 [concrete] // CHECK:STDOUT: %complete_type.loc9_1.1: = complete_type_witness constants.%struct_type.n [symbolic = %complete_type.loc9_1.2 (constants.%complete_type)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc9_1.1 @@ -287,27 +287,27 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Class.F(@Class.%T.loc5_14.2: %Copy.type) { // CHECK:STDOUT: %T.loc6: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc6 (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc6 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc6_17.1: Core.Form = init_form %T.binding.as_type [symbolic = %.loc6_17.1 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc6_11.1: type = facet_access_type %T.loc6 [symbolic = %T.as_type.loc6_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_11.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc6_17.1: Core.Form = init_form %T.as_type.loc6_11.1 [symbolic = %.loc6_17.1 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_11.1 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc6) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc12: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc6 [symbolic = %.loc12 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc6, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc12_10.2: @Class.F.%.loc12 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc12_10.2: = specific_impl_function %impl.elem0.loc12_10.2, @Copy.WithSelf.Op(%T.loc6) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type)) -> out %return.param.loc11: @Class.F.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%n.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type)) -> out %return.param.loc11: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @Class.F.%T.binding.as_type (%T.binding.as_type) = name_ref n, %n.loc11 +// CHECK:STDOUT: %n.ref: @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = name_ref n, %n.loc11 // CHECK:STDOUT: %impl.elem0.loc12_10.1: @Class.F.%.loc12 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc12_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc12_10.1: = bound_method %n.ref, %impl.elem0.loc12_10.1 // CHECK:STDOUT: %specific_impl_fn.loc12_10.1: = specific_impl_function %impl.elem0.loc12_10.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc12_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc12_10.2: = bound_method %n.ref, %specific_impl_fn.loc12_10.1 -// CHECK:STDOUT: %.loc11_36.1: ref @Class.F.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param.loc11 {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.binding.as_type (%T.binding.as_type) to %.loc11_36.1 = call %bound_method.loc12_10.2(%n.ref) +// CHECK:STDOUT: %.loc11_36.1: ref @Class.F.%T.as_type.loc6_11.1 (%T.as_type) = splice_block %return.param.loc11 {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.F.%T.as_type.loc6_11.1 (%T.as_type) to %.loc11_36.1 = call %bound_method.loc12_10.2(%n.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param.loc11 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -316,32 +316,32 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %T.loc7: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc7 (constants.%T.035)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T.loc7) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type.loc7_12: type = pattern_type %Class [symbolic = %pattern_type.loc7_12 (constants.%pattern_type.893)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_25.1: Core.Form = init_form %T.binding.as_type [symbolic = %.loc7_25.1 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc7_25.1: type = facet_access_type %T.loc7 [symbolic = %T.as_type.loc7_25.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_25.1: Core.Form = init_form %T.as_type.loc7_25.1 [symbolic = %.loc7_25.1 (constants.%.435d17.2)] +// CHECK:STDOUT: %pattern_type.loc7_25: type = pattern_type %T.as_type.loc7_25.1 [symbolic = %pattern_type.loc7_25 (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Class [symbolic = %require_complete.loc15 (constants.%require_complete.904)] -// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.binding.as_type [symbolic = %Class.elem (constants.%Class.elem)] -// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc16 (constants.%require_complete.67c)] +// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class, %T.as_type.loc7_25.1 [symbolic = %Class.elem (constants.%Class.elem)] +// CHECK:STDOUT: %require_complete.loc16: = require_complete_type %T.as_type.loc7_25.1 [symbolic = %require_complete.loc16 (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc7) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc16_14.3: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc7 [symbolic = %.loc16_14.3 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc7, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc16_14.2: @Class.G.%.loc16_14.3 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc16_14.2: = specific_impl_function %impl.elem0.loc16_14.2, @Copy.WithSelf.Op(%T.loc7) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> out %return.param.loc15: @Class.G.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%self.param.loc15: @Class.G.%Class (%Class)) -> out %return.param.loc15: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %self.ref: @Class.G.%Class (%Class) = name_ref self, %self.loc15 // CHECK:STDOUT: %n.ref: @Class.G.%Class.elem (%Class.elem) = name_ref n, @Class.%.loc8_8 [concrete = @Class.%.loc8_8] -// CHECK:STDOUT: %.loc16_14.1: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = class_element_access %self.ref, element0 -// CHECK:STDOUT: %.loc16_14.2: @Class.G.%T.binding.as_type (%T.binding.as_type) = acquire_value %.loc16_14.1 +// CHECK:STDOUT: %.loc16_14.1: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = class_element_access %self.ref, element0 +// CHECK:STDOUT: %.loc16_14.2: @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = acquire_value %.loc16_14.1 // CHECK:STDOUT: %impl.elem0.loc16_14.1: @Class.G.%.loc16_14.3 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc16_14.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc16_14.1: = bound_method %.loc16_14.2, %impl.elem0.loc16_14.1 // CHECK:STDOUT: %specific_impl_fn.loc16_14.1: = specific_impl_function %impl.elem0.loc16_14.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc16_14.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc16_14.2: = bound_method %.loc16_14.2, %specific_impl_fn.loc16_14.1 -// CHECK:STDOUT: %.loc15_44.1: ref @Class.G.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param.loc15 {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.binding.as_type (%T.binding.as_type) to %.loc15_44.1 = call %bound_method.loc16_14.2(%.loc16_14.2) +// CHECK:STDOUT: %.loc15_44.1: ref @Class.G.%T.as_type.loc7_25.1 (%T.as_type) = splice_block %return.param.loc15 {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Class.G.%T.as_type.loc7_25.1 (%T.as_type) to %.loc15_44.1 = call %bound_method.loc16_14.2(%.loc16_14.2) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param.loc15 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -354,8 +354,8 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: %Class.F => constants.%Class.F // CHECK:STDOUT: %Class.G.type => constants.%Class.G.type // CHECK:STDOUT: %Class.G => constants.%Class.G -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %T.as_type.loc8_10.2 => constants.%T.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %Class.elem => constants.%Class.elem // CHECK:STDOUT: %struct_type.n => constants.%struct_type.n @@ -364,18 +364,18 @@ fn Generic(unused T:! ()).WrongType() {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.F(constants.%T.035) { // CHECK:STDOUT: %T.loc6 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc6_17.1 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc6_11.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc6_17.1 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class.G(constants.%T.035) { // CHECK:STDOUT: %T.loc7 => constants.%T.035 // CHECK:STDOUT: %Class => constants.%Class // CHECK:STDOUT: %pattern_type.loc7_12 => constants.%pattern_type.893 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc7_25.1 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc7_25.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc7_25.1 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type.loc7_25 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- nested.carbon diff --git a/toolchain/check/testdata/class/generic/member_type.carbon b/toolchain/check/testdata/class/generic/member_type.carbon index 168a0b6292ab..9661708a395e 100644 --- a/toolchain/check/testdata/class/generic/member_type.carbon +++ b/toolchain/check/testdata/class/generic/member_type.carbon @@ -69,12 +69,12 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] // CHECK:STDOUT: %Outer.4b9: type = class_type @Outer, @Outer(%T.035) [symbolic] // CHECK:STDOUT: %Inner.bcf: type = class_type @Inner, @Inner(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Inner.elem.f8d: type = unbound_element_type %Inner.bcf, %T.binding.as_type [symbolic] -// CHECK:STDOUT: %struct_type.n.47a: type = struct_type {.n: %T.binding.as_type} [symbolic] -// CHECK:STDOUT: %complete_type.072: = complete_type_witness %struct_type.n.47a [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Inner.elem.841: type = unbound_element_type %Inner.bcf, %T.as_type [symbolic] +// CHECK:STDOUT: %struct_type.n.50e: type = struct_type {.n: %T.as_type} [symbolic] +// CHECK:STDOUT: %complete_type.06d: = complete_type_witness %struct_type.n.50e [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %.d79: Core.Form = init_form %Inner.bcf [symbolic] // CHECK:STDOUT: %pattern_type.611: type = pattern_type %Inner.bcf [symbolic] // CHECK:STDOUT: %Outer.F.type.2fb: type = fn_type @Outer.F, @Outer(%T.035) [symbolic] @@ -201,21 +201,21 @@ fn Test() -> i32 { // CHECK:STDOUT: class { // CHECK:STDOUT: %Inner.decl: type = class_decl @Inner [symbolic = @Outer.%Inner (constants.%Inner.bcf)] {} {} // CHECK:STDOUT: %Outer.F.decl: @Outer.%Outer.F.type (%Outer.F.type.2fb) = fn_decl @Outer.F [symbolic = @Outer.%Outer.F (constants.%Outer.F.5e3)] { -// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.9b9f0c.2) = at_binding_pattern n, %n.param_patt [concrete] +// CHECK:STDOUT: %n.param_patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %n.patt: @Outer.F.%pattern_type.loc9_9 (%pattern_type.3b9bb5.2) = at_binding_pattern n, %n.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.611) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Outer.F.%pattern_type.loc9_17 (%pattern_type.611) = return_slot_pattern %return.param_patt, %Inner.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_17.2: type = specific_constant @Outer.%Inner.decl, @Outer(constants.%T.035) [symbolic = %Inner (constants.%Inner.bcf)] // CHECK:STDOUT: %Inner.ref: type = name_ref Inner, %.loc9_17.2 [symbolic = %Inner (constants.%Inner.bcf)] // CHECK:STDOUT: %.loc9_17.3: Core.Form = init_form %Inner.ref [symbolic = %.loc9_17.1 (constants.%.d79)] -// CHECK:STDOUT: %n.param: @Outer.F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_11.1: type = splice_block %.loc9_11.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_11.1: type = splice_block %.loc9_11.2 [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_11.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_11.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_11.2: type = converted %T.ref, %T.as_type.loc9_11.2 [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %n: @Outer.F.%T.binding.as_type (%T.binding.as_type) = value_binding n, %n.param +// CHECK:STDOUT: %n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = value_binding n, %n.param // CHECK:STDOUT: %return.param: ref @Outer.F.%Inner (%Inner.bcf) = out_param call_param1 // CHECK:STDOUT: %return: ref @Outer.F.%Inner (%Inner.bcf) = return_slot %return.param // CHECK:STDOUT: } @@ -233,19 +233,19 @@ fn Test() -> i32 { // CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_14.2: %Copy.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %T.as_type.loc6_12.2: type = facet_access_type %T [symbolic = %T.as_type.loc6_12.2 (constants.%T.as_type)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_12.2 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.bcf)] -// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.binding.as_type [symbolic = %Inner.elem (constants.%Inner.elem.f8d)] -// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Inner.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.47a)] -// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.072)] +// CHECK:STDOUT: %Inner.elem: type = unbound_element_type %Inner, %T.as_type.loc6_12.2 [symbolic = %Inner.elem (constants.%Inner.elem.841)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Inner.%T.as_type.loc6_12.2 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.50e)] +// CHECK:STDOUT: %complete_type.loc7_3.2: = complete_type_witness %struct_type.n [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.06d)] // CHECK:STDOUT: // CHECK:STDOUT: class { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_12: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_10: @Inner.%Inner.elem (%Inner.elem.f8d) = field_decl n, element0 [concrete] -// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.47a [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.072)] +// CHECK:STDOUT: %T.as_type.loc6_12.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_12.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_12: type = converted %T.ref, %T.as_type.loc6_12.1 [symbolic = %T.as_type.loc6_12.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_10: @Inner.%Inner.elem (%Inner.elem.841) = field_decl n, element0 [concrete] +// CHECK:STDOUT: %complete_type.loc7_3.1: = complete_type_witness constants.%struct_type.n.50e [symbolic = %complete_type.loc7_3.2 (constants.%complete_type.06d)] // CHECK:STDOUT: complete_type_witness = %complete_type.loc7_3.1 // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -257,33 +257,33 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Outer.F(@Outer.%T.loc4_14.2: %Copy.type) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc9_11.1: type = facet_access_type %T [symbolic = %T.as_type.loc9_11.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_9: type = pattern_type %T.as_type.loc9_11.1 [symbolic = %pattern_type.loc9_9 (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: %Inner: type = class_type @Inner, @Inner(%T) [symbolic = %Inner (constants.%Inner.bcf)] // CHECK:STDOUT: %.loc9_17.1: Core.Form = init_form %Inner [symbolic = %.loc9_17.1 (constants.%.d79)] // CHECK:STDOUT: %pattern_type.loc9_17: type = pattern_type %Inner [symbolic = %pattern_type.loc9_17 (constants.%pattern_type.611)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_9 (constants.%require_complete.67c)] +// CHECK:STDOUT: %require_complete.loc9_9: = require_complete_type %T.as_type.loc9_11.1 [symbolic = %require_complete.loc9_9 (constants.%require_complete.89e)] // CHECK:STDOUT: %require_complete.loc9_17: = require_complete_type %Inner [symbolic = %require_complete.loc9_17 (constants.%require_complete.e6c)] -// 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.47a)] +// CHECK:STDOUT: %struct_type.n: type = struct_type {.n: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)} [symbolic = %struct_type.n (constants.%struct_type.n.50e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc9_38: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc9_38 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc9_38.2: @Outer.F.%.loc9_38 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc9_38.2: = specific_impl_function %impl.elem0.loc9_38.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @Outer.F.%Inner (%Inner.bcf) { +// CHECK:STDOUT: fn(%n.param: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type)) -> out %return.param: @Outer.F.%Inner (%Inner.bcf) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %n.ref: @Outer.F.%T.binding.as_type (%T.binding.as_type) = name_ref n, %n -// CHECK:STDOUT: %.loc9_39.1: @Outer.F.%struct_type.n (%struct_type.n.47a) = struct_literal (%n.ref) +// CHECK:STDOUT: %n.ref: @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = name_ref n, %n +// CHECK:STDOUT: %.loc9_39.1: @Outer.F.%struct_type.n (%struct_type.n.50e) = struct_literal (%n.ref) // CHECK:STDOUT: %impl.elem0.loc9_38.1: @Outer.F.%.loc9_38 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc9_38.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc9_38.1: = bound_method %n.ref, %impl.elem0.loc9_38.1 // CHECK:STDOUT: %specific_impl_fn.loc9_38.1: = specific_impl_function %impl.elem0.loc9_38.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc9_38.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc9_38.2: = bound_method %n.ref, %specific_impl_fn.loc9_38.1 -// CHECK:STDOUT: %.loc9_39.2: ref @Outer.F.%T.binding.as_type (%T.binding.as_type) = class_element_access %return.param, element0 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Outer.F.%T.binding.as_type (%T.binding.as_type) to %.loc9_39.2 = call %bound_method.loc9_38.2(%n.ref) -// CHECK:STDOUT: %.loc9_39.3: init @Outer.F.%T.binding.as_type (%T.binding.as_type) to %.loc9_39.2 = in_place_init %Copy.WithSelf.Op.call +// CHECK:STDOUT: %.loc9_39.2: ref @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) = class_element_access %return.param, element0 +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) to %.loc9_39.2 = call %bound_method.loc9_38.2(%n.ref) +// CHECK:STDOUT: %.loc9_39.3: init @Outer.F.%T.as_type.loc9_11.1 (%T.as_type) to %.loc9_39.2 = in_place_init %Copy.WithSelf.Op.call // CHECK:STDOUT: %.loc9_39.4: init @Outer.F.%Inner (%Inner.bcf) to %return.param = class_init (%.loc9_39.3) // CHECK:STDOUT: %.loc9_40: init @Outer.F.%Inner (%Inner.bcf) = converted %.loc9_39.1, %.loc9_39.4 // CHECK:STDOUT: return %.loc9_40 to %return.param @@ -371,18 +371,18 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Inner(constants.%T.035) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %T.as_type.loc6_12.2 => constants.%T.as_type +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Inner => constants.%Inner.bcf -// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.f8d -// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.47a -// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.072 +// CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.841 +// CHECK:STDOUT: %struct_type.n => constants.%struct_type.n.50e +// CHECK:STDOUT: %complete_type.loc7_3.2 => constants.%complete_type.06d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.F(constants.%T.035) { // CHECK:STDOUT: %T => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: %Inner => constants.%Inner.bcf // CHECK:STDOUT: %.loc9_17.1 => constants.%.d79 // CHECK:STDOUT: %pattern_type.loc9_17 => constants.%pattern_type.611 @@ -400,7 +400,7 @@ fn Test() -> i32 { // CHECK:STDOUT: specific @Inner(constants.%Copy.facet.de4) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%Copy.facet.de4 -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc6_12.2 => constants.%i32 // CHECK:STDOUT: %require_complete => constants.%complete_type.f8a // CHECK:STDOUT: %Inner => constants.%Inner.74c // CHECK:STDOUT: %Inner.elem => constants.%Inner.elem.34c @@ -410,7 +410,7 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer.F(constants.%Copy.facet.de4) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc9_11.1 => constants.%i32 // CHECK:STDOUT: %pattern_type.loc9_9 => constants.%pattern_type.7ce // CHECK:STDOUT: %Inner => constants.%Inner.74c // CHECK:STDOUT: %.loc9_17.1 => constants.%.42e @@ -440,8 +440,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %Outer.387: type = class_type @Outer, @Outer(%T) [symbolic] // CHECK:STDOUT: %Inner.type.6ef: type = facet_type <@Inner, @Inner(%T)> [symbolic] // CHECK:STDOUT: %Self.d55: %Inner.type.6ef = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.534: type = symbolic_binding_type Self, 1, %Self.d55 [symbolic] -// CHECK:STDOUT: %pattern_type.72a: type = pattern_type %Self.binding.as_type.534 [symbolic] +// CHECK:STDOUT: %Self.as_type.48b: type = facet_access_type %Self.d55 [symbolic] +// CHECK:STDOUT: %pattern_type.705: type = pattern_type %Self.as_type.48b [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %Inner.WithSelf.F.type.675: type = fn_type @Inner.WithSelf.F, @Inner.WithSelf(%T, %Self.d55) [symbolic] @@ -565,21 +565,21 @@ fn Test() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Inner.WithSelf.F.decl: @Inner.WithSelf.%Inner.WithSelf.F.type (%Inner.WithSelf.F.type.675) = fn_decl @Inner.WithSelf.F [symbolic = @Inner.WithSelf.%Inner.WithSelf.F (constants.%Inner.WithSelf.F.06f)] { -// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.72a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.72a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.705) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Inner.WithSelf.F.%pattern_type.loc6_14 (%pattern_type.705) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Inner.WithSelf.F.%pattern_type.loc6_27 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc6_27.2: Core.Form = init_form %T.ref [symbolic = %.loc6_27.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @Inner.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.534) = value_param call_param0 -// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.534)] { +// CHECK:STDOUT: %self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.48b) = value_param call_param0 +// CHECK:STDOUT: %.loc6_16.1: type = splice_block %.loc6_16.3 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.48b)] { // CHECK:STDOUT: %.loc6_16.2: @Inner.WithSelf.F.%Inner.type (%Inner.type.6ef) = specific_constant @Inner.%Self.loc5_19.1, @Inner(constants.%T) [symbolic = %Self (constants.%Self.d55)] // CHECK:STDOUT: %Self.ref: @Inner.WithSelf.F.%Inner.type (%Inner.type.6ef) = name_ref Self, %.loc6_16.2 [symbolic = %Self (constants.%Self.d55)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.534)] -// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.534)] +// CHECK:STDOUT: %Self.as_type.loc6_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.48b)] +// CHECK:STDOUT: %.loc6_16.3: type = converted %Self.ref, %Self.as_type.loc6_16.2 [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.48b)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Inner.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.534) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.48b) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @Inner.WithSelf.F.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Inner.WithSelf.F.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -724,12 +724,12 @@ fn Test() -> i32 { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Inner.type: type = facet_type <@Inner, @Inner(%T)> [symbolic = %Inner.type (constants.%Inner.type.6ef)] // CHECK:STDOUT: %Self: @Inner.WithSelf.F.%Inner.type (%Inner.type.6ef) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.d55)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.534)] -// CHECK:STDOUT: %pattern_type.loc6_14: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_14 (constants.%pattern_type.72a)] +// CHECK:STDOUT: %Self.as_type.loc6_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_16.1 (constants.%Self.as_type.48b)] +// CHECK:STDOUT: %pattern_type.loc6_14: type = pattern_type %Self.as_type.loc6_16.1 [symbolic = %pattern_type.loc6_14 (constants.%pattern_type.705)] // CHECK:STDOUT: %.loc6_27.1: Core.Form = init_form %T [symbolic = %.loc6_27.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc6_27: type = pattern_type %T [symbolic = %pattern_type.loc6_27 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Inner.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.534)) -> out %return.param: @Inner.WithSelf.F.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Inner.WithSelf.F.%Self.as_type.loc6_16.1 (%Self.as_type.48b)) -> out %return.param: @Inner.WithSelf.F.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.Inner.impl.F(@Outer.%T.loc4_14.2: type) { @@ -848,8 +848,8 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Self.d55 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.534 -// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.72a +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%Self.as_type.48b +// CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.705 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -893,7 +893,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Inner.facet.921 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.131 +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.131 // CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.fe7 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d @@ -914,7 +914,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Inner.type => constants.%Inner.type.6ef // CHECK:STDOUT: %Self => constants.%Inner.facet.f78 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.131 +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.131 // CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.fe7 // CHECK:STDOUT: %.loc6_27.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.51d @@ -965,7 +965,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.94a // CHECK:STDOUT: %Self => constants.%Inner.facet.dc9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%D // CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.9c8 // CHECK:STDOUT: %.loc6_27.1 => constants.%.ff5 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.7ce @@ -1021,7 +1021,7 @@ fn Test() -> i32 { // CHECK:STDOUT: %T => constants.%i32 // CHECK:STDOUT: %Inner.type => constants.%Inner.type.94a // CHECK:STDOUT: %Self => constants.%Inner.facet.ac9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.d3f +// CHECK:STDOUT: %Self.as_type.loc6_16.1 => constants.%C.d3f // CHECK:STDOUT: %pattern_type.loc6_14 => constants.%pattern_type.129 // CHECK:STDOUT: %.loc6_27.1 => constants.%.ff5 // CHECK:STDOUT: %pattern_type.loc6_27 => constants.%pattern_type.7ce diff --git a/toolchain/check/testdata/const/basics.carbon b/toolchain/check/testdata/const/basics.carbon index 9e5453d70f0f..8e550e071116 100644 --- a/toolchain/check/testdata/const/basics.carbon +++ b/toolchain/check/testdata/const/basics.carbon @@ -140,8 +140,8 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.5eb: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.035) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.cc6: %const.as.Copy.impl.Op.type.5eb = struct_value () [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.bc0: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.035) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.6ce: %const.as.Copy.impl.Op.type.bc0 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.2d4: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.74e: %ptr.as.Copy.impl.Op.type.2d4 = struct_value () [symbolic] @@ -160,18 +160,18 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %Copy.impl_witness.2c7: = impl_witness imports.%Copy.impl_witness_table.c3a, @ptr.as.Copy.impl(%C) [concrete] // CHECK:STDOUT: %Copy.facet.a7f: %Copy.type = facet_value %ptr.31e, (%Copy.impl_witness.2c7) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.e93: = impl_witness imports.%Copy.impl_witness_table.a26, @const.as.Copy.impl(%Copy.facet.a7f) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.368: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.a7f) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.c19: %const.as.Copy.impl.Op.type.368 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.5cc: %Copy.type = facet_value %const.8ce, (%Copy.impl_witness.e93) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.b95: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.5cc) [concrete] -// CHECK:STDOUT: %.21b: type = fn_type_with_self_type %Copy.WithSelf.Op.type.b95, %Copy.facet.5cc [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.c19, @const.as.Copy.impl.Op(%Copy.facet.a7f) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.e3d: = impl_witness imports.%Copy.impl_witness_table.29e, @const.as.Copy.impl(%Copy.facet.a7f) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.981: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.a7f) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.5d6: %const.as.Copy.impl.Op.type.981 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.448: %Copy.type = facet_value %const.8ce, (%Copy.impl_witness.e3d) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.a2c: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.448) [concrete] +// CHECK:STDOUT: %.802: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a2c, %Copy.facet.448 [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.5d6, @const.as.Copy.impl.Op(%Copy.facet.a7f) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.ae5: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.5eb) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.cc6)] -// CHECK:STDOUT: %Copy.impl_witness_table.a26 = impl_witness_table (%Core.import_ref.ae5), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.091: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.bc0) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.6ce)] +// CHECK:STDOUT: %Copy.impl_witness_table.29e = impl_witness_table (%Core.import_ref.091), @const.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.203: @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op.type (%ptr.as.Copy.impl.Op.type.2d4) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.Copy.impl.%ptr.as.Copy.impl.Op (constants.%ptr.as.Copy.impl.Op.74e)] // CHECK:STDOUT: %Copy.impl_witness_table.c3a = impl_witness_table (%Core.import_ref.203), @ptr.as.Copy.impl [concrete] // CHECK:STDOUT: } @@ -235,7 +235,7 @@ fn PassConstReferenceToReference(p: const X*) { // CHECK:STDOUT: fn @B(%p.param: %const.8ce) -> out %return.param: %const.8ce { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %p.ref: %const.8ce = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.21b = impl_witness_access constants.%Copy.impl_witness.e93, element0 [concrete = constants.%const.as.Copy.impl.Op.c19] +// CHECK:STDOUT: %impl.elem0: %.802 = impl_witness_access constants.%Copy.impl_witness.e3d, element0 [concrete = constants.%const.as.Copy.impl.Op.5d6] // CHECK:STDOUT: %bound_method.loc11_10.1: = bound_method %p.ref, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.a7f) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc11_10.2: = bound_method %p.ref, %specific_fn diff --git a/toolchain/check/testdata/deduce/binding_pattern.carbon b/toolchain/check/testdata/deduce/binding_pattern.carbon index 9161cf6a7a7b..3932cc3bf2b8 100644 --- a/toolchain/check/testdata/deduce/binding_pattern.carbon +++ b/toolchain/check/testdata/deduce/binding_pattern.carbon @@ -280,25 +280,25 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %ImplicitAs.assoc_type.ff3: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%Dest) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b3a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.738) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.1de: %ImplicitAs.WithSelf.Convert.type.b3a = struct_value () [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] -// CHECK:STDOUT: %ImplicitAs.type.164: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.binding.as_type)> [symbolic_self] -// CHECK:STDOUT: %type_where: type = facet_type [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.9fd: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %type_where: type = facet_type [symbolic_self] // CHECK:STDOUT: %pattern_type.9a5: type = pattern_type %type_where [symbolic_self] // CHECK:STDOUT: %V: %type_where = symbolic_binding V, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 1, %V [symbolic] -// CHECK:STDOUT: %C.635: type = class_type @C, @C(%V.binding.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.type.069: type = fn_type @C.Create, @C(%V.binding.as_type) [symbolic] -// CHECK:STDOUT: %C.Create.63a: %C.Create.type.069 = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.829: = require_complete_type %C.635 [symbolic] -// CHECK:STDOUT: %pattern_type.29e: type = pattern_type %V.binding.as_type [symbolic] -// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.63a, @C.Create(%V.binding.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.3f7: = require_complete_type %V.binding.as_type [symbolic] -// CHECK:STDOUT: %ImplicitAs.type.3ee: type = facet_type <@ImplicitAs, @ImplicitAs(%V.binding.as_type)> [symbolic] -// CHECK:STDOUT: %ImplicitAs.assoc_type.efc: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.binding.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.57e: %ImplicitAs.assoc_type.efc = assoc_entity element0, imports.%Core.import_ref.201 [symbolic] -// CHECK:STDOUT: %require_complete.8dc: = require_complete_type %ImplicitAs.type.3ee [symbolic] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %C.771: type = class_type @C, @C(%V.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.type.546: type = fn_type @C.Create, @C(%V.as_type) [symbolic] +// CHECK:STDOUT: %C.Create.efb: %C.Create.type.546 = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.8ea: = require_complete_type %C.771 [symbolic] +// CHECK:STDOUT: %pattern_type.eff: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %C.Create.specific_fn: = specific_function %C.Create.efb, @C.Create(%V.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.63f: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %ImplicitAs.type.596: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type)> [symbolic] +// CHECK:STDOUT: %ImplicitAs.assoc_type.e29: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.f06: %ImplicitAs.assoc_type.e29 = assoc_entity element0, imports.%Core.import_ref.201 [symbolic] +// CHECK:STDOUT: %require_complete.26d: = require_complete_type %ImplicitAs.type.596 [symbolic] // CHECK:STDOUT: %assoc0.843: %ImplicitAs.assoc_type.ff3 = assoc_entity element0, imports.%Core.import_ref.cc1 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -347,9 +347,9 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_68: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %ImplicitAs.type.loc9: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.binding.as_type)> [symbolic_self = constants.%ImplicitAs.type.164] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_68: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %ImplicitAs.type.loc9: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.9fd] // CHECK:STDOUT: %.loc9_39.2: type = converted %.loc9_39.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc9_32.2: type = where_expr %.Self.2 [symbolic_self = constants.%type_where] { // CHECK:STDOUT: requirement_base_facet_type type @@ -404,33 +404,33 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.loc9_24.1: %type_where = symbolic_binding V, 1 [symbolic = %V.loc9_24.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 1, %V.loc9_24.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %C.loc20_6.2: type = class_type @C, @C(%V.binding.as_type) [symbolic = %C.loc20_6.2 (constants.%C.635)] -// CHECK:STDOUT: %require_complete.loc20_7: = require_complete_type %C.loc20_6.2 [symbolic = %require_complete.loc20_7 (constants.%require_complete.829)] -// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.binding.as_type) [symbolic = %C.Create.type (constants.%C.Create.type.069)] -// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.069) = struct_value () [symbolic = %C.Create (constants.%C.Create.63a)] -// CHECK:STDOUT: %C.Create.specific_fn.loc20_7.2: = specific_function %C.Create, @C.Create(%V.binding.as_type) [symbolic = %C.Create.specific_fn.loc20_7.2 (constants.%C.Create.specific_fn)] -// CHECK:STDOUT: %require_complete.loc20_16.1: = require_complete_type %V.binding.as_type [symbolic = %require_complete.loc20_16.1 (constants.%require_complete.3f7)] -// CHECK:STDOUT: %ImplicitAs.type.loc20_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.binding.as_type)> [symbolic = %ImplicitAs.type.loc20_16.2 (constants.%ImplicitAs.type.3ee)] -// CHECK:STDOUT: %require_complete.loc20_16.2: = require_complete_type %ImplicitAs.type.loc20_16.2 [symbolic = %require_complete.loc20_16.2 (constants.%require_complete.8dc)] -// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.binding.as_type) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.efc)] -// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.efc) = assoc_entity element0, imports.%Core.import_ref.201 [symbolic = %assoc0 (constants.%assoc0.57e)] +// CHECK:STDOUT: %V.as_type.loc20_6.2: type = facet_access_type %V.loc9_24.1 [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] +// CHECK:STDOUT: %C.loc20_6.2: type = class_type @C, @C(%V.as_type.loc20_6.2) [symbolic = %C.loc20_6.2 (constants.%C.771)] +// CHECK:STDOUT: %require_complete.loc20_7: = require_complete_type %C.loc20_6.2 [symbolic = %require_complete.loc20_7 (constants.%require_complete.8ea)] +// CHECK:STDOUT: %C.Create.type: type = fn_type @C.Create, @C(%V.as_type.loc20_6.2) [symbolic = %C.Create.type (constants.%C.Create.type.546)] +// CHECK:STDOUT: %C.Create: @F.%C.Create.type (%C.Create.type.546) = struct_value () [symbolic = %C.Create (constants.%C.Create.efb)] +// CHECK:STDOUT: %C.Create.specific_fn.loc20_7.2: = specific_function %C.Create, @C.Create(%V.as_type.loc20_6.2) [symbolic = %C.Create.specific_fn.loc20_7.2 (constants.%C.Create.specific_fn)] +// CHECK:STDOUT: %require_complete.loc20_16.1: = require_complete_type %V.as_type.loc20_6.2 [symbolic = %require_complete.loc20_16.1 (constants.%require_complete.63f)] +// CHECK:STDOUT: %ImplicitAs.type.loc20_16.2: type = facet_type <@ImplicitAs, @ImplicitAs(%V.as_type.loc20_6.2)> [symbolic = %ImplicitAs.type.loc20_16.2 (constants.%ImplicitAs.type.596)] +// CHECK:STDOUT: %require_complete.loc20_16.2: = require_complete_type %ImplicitAs.type.loc20_16.2 [symbolic = %require_complete.loc20_16.2 (constants.%require_complete.26d)] +// CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%V.as_type.loc20_6.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.e29)] +// CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e29) = assoc_entity element0, imports.%Core.import_ref.201 [symbolic = %assoc0 (constants.%assoc0.f06)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %V.ref: %type_where = name_ref V, %V.loc9_24.2 [symbolic = %V.loc9_24.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc20_6: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %C.loc20_6.1: type = class_type @C, @C(constants.%V.binding.as_type) [symbolic = %C.loc20_6.2 (constants.%C.635)] -// CHECK:STDOUT: %.loc20_7: @F.%C.Create.type (%C.Create.type.069) = specific_constant @C.%C.Create.decl, @C(constants.%V.binding.as_type) [symbolic = %C.Create (constants.%C.Create.63a)] -// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.069) = name_ref Create, %.loc20_7 [symbolic = %C.Create (constants.%C.Create.63a)] +// CHECK:STDOUT: %V.as_type.loc20_6.1: type = facet_access_type %V.ref [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc20_6: type = converted %V.ref, %V.as_type.loc20_6.1 [symbolic = %V.as_type.loc20_6.2 (constants.%V.as_type)] +// CHECK:STDOUT: %C.loc20_6.1: type = class_type @C, @C(constants.%V.as_type) [symbolic = %C.loc20_6.2 (constants.%C.771)] +// CHECK:STDOUT: %.loc20_7: @F.%C.Create.type (%C.Create.type.546) = specific_constant @C.%C.Create.decl, @C(constants.%V.as_type) [symbolic = %C.Create (constants.%C.Create.efb)] +// CHECK:STDOUT: %Create.ref: @F.%C.Create.type (%C.Create.type.546) = name_ref Create, %.loc20_7 [symbolic = %C.Create (constants.%C.Create.efb)] // CHECK:STDOUT: %.loc20_16.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %C.Create.specific_fn.loc20_7.1: = specific_function %Create.ref, @C.Create(constants.%V.binding.as_type) [symbolic = %C.Create.specific_fn.loc20_7.2 (constants.%C.Create.specific_fn)] -// CHECK:STDOUT: %ImplicitAs.type.loc20_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V.binding.as_type)> [symbolic = %ImplicitAs.type.loc20_16.2 (constants.%ImplicitAs.type.3ee)] -// CHECK:STDOUT: %.loc20_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.efc) = specific_constant imports.%Core.import_ref.178, @ImplicitAs.WithSelf(constants.%V.binding.as_type, constants.%Self.738) [symbolic = %assoc0 (constants.%assoc0.57e)] -// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.efc) = name_ref Convert, %.loc20_16.2 [symbolic = %assoc0 (constants.%assoc0.57e)] -// CHECK:STDOUT: %.loc20_16.3: @F.%V.binding.as_type (%V.binding.as_type) = converted %.loc20_16.1, [concrete = ] +// CHECK:STDOUT: %C.Create.specific_fn.loc20_7.1: = specific_function %Create.ref, @C.Create(constants.%V.as_type) [symbolic = %C.Create.specific_fn.loc20_7.2 (constants.%C.Create.specific_fn)] +// CHECK:STDOUT: %ImplicitAs.type.loc20_16.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%V.as_type)> [symbolic = %ImplicitAs.type.loc20_16.2 (constants.%ImplicitAs.type.596)] +// CHECK:STDOUT: %.loc20_16.2: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e29) = specific_constant imports.%Core.import_ref.178, @ImplicitAs.WithSelf(constants.%V.as_type, constants.%Self.738) [symbolic = %assoc0 (constants.%assoc0.f06)] +// CHECK:STDOUT: %Convert.ref: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.e29) = name_ref Convert, %.loc20_16.2 [symbolic = %assoc0 (constants.%assoc0.f06)] +// CHECK:STDOUT: %.loc20_16.3: @F.%V.as_type.loc20_6.2 (%V.as_type) = converted %.loc20_16.1, [concrete = ] // CHECK:STDOUT: %C.Create.call: init %empty_tuple.type = call %C.Create.specific_fn.loc20_7.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -454,19 +454,19 @@ fn F(unused U:! type, V:! type where {} impls Core.ImplicitAs(.Self)) { // CHECK:STDOUT: %V.loc9_24.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C(constants.%V.binding.as_type) { -// CHECK:STDOUT: %T.loc4_10.1 => constants.%V.binding.as_type +// CHECK:STDOUT: specific @C(constants.%V.as_type) { +// CHECK:STDOUT: %T.loc4_10.1 => constants.%V.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.069 -// CHECK:STDOUT: %C.Create => constants.%C.Create.63a +// CHECK:STDOUT: %C.Create.type => constants.%C.Create.type.546 +// CHECK:STDOUT: %C.Create => constants.%C.Create.efb // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @C.Create(constants.%V.binding.as_type) { -// CHECK:STDOUT: %T => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.29e +// CHECK:STDOUT: specific @C.Create(constants.%V.as_type) { +// CHECK:STDOUT: %T => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.eff // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.3f7 +// CHECK:STDOUT: %require_complete => constants.%require_complete.63f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon index 5f507d3176f9..8e71efcbf6d6 100644 --- a/toolchain/check/testdata/deduce/value_with_type_through_access.carbon +++ b/toolchain/check/testdata/deduce/value_with_type_through_access.carbon @@ -128,7 +128,7 @@ fn G() { // CHECK:STDOUT: %tuple.1f1: %tuple.type = tuple_value (%C) [concrete] // CHECK:STDOUT: %HoldsType.a31: type = class_type @HoldsType, @HoldsType(%tuple.1f1) [concrete] // CHECK:STDOUT: %HoldsType.val: %HoldsType.a31 = struct_value () [concrete] -// CHECK:STDOUT: %pattern_type.a646: type = pattern_type %HoldsType.a31 [concrete] +// CHECK:STDOUT: %pattern_type.a64: type = pattern_type %HoldsType.a31 [concrete] // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%tuple.1f1) [concrete] // CHECK:STDOUT: %.31a: ref %HoldsType.a31 = temporary invalid, %HoldsType.val [concrete] @@ -307,7 +307,7 @@ fn G() { // CHECK:STDOUT: specific @F(constants.%tuple.1f1) { // CHECK:STDOUT: %T.loc8_7.1 => constants.%tuple.1f1 // CHECK:STDOUT: %HoldsType.loc8_41.1 => constants.%HoldsType.a31 -// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.a646 +// CHECK:STDOUT: %pattern_type.loc8_28 => constants.%pattern_type.a64 // CHECK:STDOUT: %tuple.elem0.loc8_55.1 => constants.%C // CHECK:STDOUT: %pattern_type.loc8_52 => constants.%pattern_type.7c7 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/aggregates.carbon b/toolchain/check/testdata/eval/aggregates.carbon index 0a12eea91ec2..3126dcdf771a 100644 --- a/toolchain/check/testdata/eval/aggregates.carbon +++ b/toolchain/check/testdata/eval/aggregates.carbon @@ -487,61 +487,61 @@ fn G(N:! i32) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %T.765: %Destroy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.140: type = symbolic_binding_type T, 0, %T.765 [symbolic] -// CHECK:STDOUT: %ptr.ef1: type = ptr_type %T.binding.as_type.140 [symbolic] -// CHECK:STDOUT: %const: type = const_type %T.binding.as_type.140 [symbolic] +// CHECK:STDOUT: %T.as_type.2e9: type = facet_access_type %T.765 [symbolic] +// CHECK:STDOUT: %ptr.e44: type = ptr_type %T.as_type.2e9 [symbolic] +// CHECK:STDOUT: %const: type = const_type %T.as_type.2e9 [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.ef1, %const) [symbolic] -// CHECK:STDOUT: %tuple.type.3d1: type = tuple_type (%ptr.ef1, %const) [symbolic] -// CHECK:STDOUT: %require_complete.fd4: = require_complete_type %tuple.type.3d1 [symbolic] -// CHECK:STDOUT: %pattern_type.3d7: type = pattern_type %tuple.type.3d1 [symbolic] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.e44, %const) [symbolic] +// CHECK:STDOUT: %tuple.type.a8a: type = tuple_type (%ptr.e44, %const) [symbolic] +// CHECK:STDOUT: %require_complete.d1a: = require_complete_type %tuple.type.a8a [symbolic] +// CHECK:STDOUT: %pattern_type.e0b: type = pattern_type %tuple.type.a8a [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.10f: = lookup_impl_witness %tuple.type.3d1, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.aad: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type.3d1) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.735: %DefaultOrUnformed.type = facet_value %tuple.type.3d1, (%DefaultOrUnformed.lookup_impl_witness.10f) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.7cc: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.735) [symbolic] -// CHECK:STDOUT: %.fc3: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.7cc, %DefaultOrUnformed.facet.735 [symbolic] -// CHECK:STDOUT: %impl.elem0.5de: %.fc3 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.10f, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.289: = specific_impl_function %impl.elem0.5de, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.735) [symbolic] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.binding.as_type.140} [symbolic] -// CHECK:STDOUT: %require_complete.964: = require_complete_type %struct_type.a [symbolic] -// CHECK:STDOUT: %pattern_type.f2e: type = pattern_type %struct_type.a [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.ee5: = lookup_impl_witness %struct_type.a, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.a3f: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.e47: %DefaultOrUnformed.type = facet_value %struct_type.a, (%DefaultOrUnformed.lookup_impl_witness.ee5) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.487: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.e47) [symbolic] -// CHECK:STDOUT: %.d49: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.487, %DefaultOrUnformed.facet.e47 [symbolic] -// CHECK:STDOUT: %impl.elem0.760: %.d49 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.ee5, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.d5b: = specific_impl_function %impl.elem0.760, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.e47) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.e24: = lookup_impl_witness %tuple.type.a8a, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.e36: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type.a8a) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.b88: %DefaultOrUnformed.type = facet_value %tuple.type.a8a, (%DefaultOrUnformed.lookup_impl_witness.e24) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.15a: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.b88) [symbolic] +// CHECK:STDOUT: %.742: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.15a, %DefaultOrUnformed.facet.b88 [symbolic] +// CHECK:STDOUT: %impl.elem0.ba1: %.742 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.e24, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.812: = specific_impl_function %impl.elem0.ba1, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.b88) [symbolic] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type.2e9} [symbolic] +// CHECK:STDOUT: %require_complete.406: = require_complete_type %struct_type.a [symbolic] +// CHECK:STDOUT: %pattern_type.250: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.92c: = lookup_impl_witness %struct_type.a, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.9f3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.12a: %DefaultOrUnformed.type = facet_value %struct_type.a, (%DefaultOrUnformed.lookup_impl_witness.92c) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.b30: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.12a) [symbolic] +// CHECK:STDOUT: %.c9d: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.b30, %DefaultOrUnformed.facet.12a [symbolic] +// CHECK:STDOUT: %impl.elem0.ab4: %.c9d = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.92c, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c9a: = specific_impl_function %impl.elem0.ab4, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.12a) [symbolic] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete] -// CHECK:STDOUT: %array_type.750: type = array_type %int_5, %T.binding.as_type.140 [symbolic] -// CHECK:STDOUT: %require_complete.32a: = require_complete_type %array_type.750 [symbolic] -// CHECK:STDOUT: %pattern_type.e81: type = pattern_type %array_type.750 [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.b97: = lookup_impl_witness %array_type.750, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.adf: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.750) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.facet.cc0: %DefaultOrUnformed.type = facet_value %array_type.750, (%DefaultOrUnformed.lookup_impl_witness.b97) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.dff: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.cc0) [symbolic] -// CHECK:STDOUT: %.86d: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.dff, %DefaultOrUnformed.facet.cc0 [symbolic] -// CHECK:STDOUT: %impl.elem0.0e2: %.86d = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.b97, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.9f7: = specific_impl_function %impl.elem0.0e2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.cc0) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.b42: = lookup_impl_witness %array_type.750, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.e98: %Destroy.type = facet_value %array_type.750, (%Destroy.lookup_impl_witness.b42) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1a4: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.e98) [symbolic] -// CHECK:STDOUT: %.1f4: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1a4, %Destroy.facet.e98 [symbolic] -// CHECK:STDOUT: %impl.elem0.dcc: %.1f4 = impl_witness_access %Destroy.lookup_impl_witness.b42, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.ef1: = specific_impl_function %impl.elem0.dcc, @Destroy.WithSelf.Op(%Destroy.facet.e98) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.2a6: = lookup_impl_witness %struct_type.a, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.884: %Destroy.type = facet_value %struct_type.a, (%Destroy.lookup_impl_witness.2a6) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.80d: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.884) [symbolic] -// CHECK:STDOUT: %.b19: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.80d, %Destroy.facet.884 [symbolic] -// CHECK:STDOUT: %impl.elem0.0c6: %.b19 = impl_witness_access %Destroy.lookup_impl_witness.2a6, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.d3c: = specific_impl_function %impl.elem0.0c6, @Destroy.WithSelf.Op(%Destroy.facet.884) [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.7e1: = lookup_impl_witness %tuple.type.3d1, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.753: %Destroy.type = facet_value %tuple.type.3d1, (%Destroy.lookup_impl_witness.7e1) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.c24: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.753) [symbolic] -// CHECK:STDOUT: %.958: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.c24, %Destroy.facet.753 [symbolic] -// CHECK:STDOUT: %impl.elem0.9bc: %.958 = impl_witness_access %Destroy.lookup_impl_witness.7e1, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.33d: = specific_impl_function %impl.elem0.9bc, @Destroy.WithSelf.Op(%Destroy.facet.753) [symbolic] +// CHECK:STDOUT: %array_type.9a7: type = array_type %int_5, %T.as_type.2e9 [symbolic] +// CHECK:STDOUT: %require_complete.f70: = require_complete_type %array_type.9a7 [symbolic] +// CHECK:STDOUT: %pattern_type.047: type = pattern_type %array_type.9a7 [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.494: = lookup_impl_witness %array_type.9a7, @DefaultOrUnformed [symbolic] +// CHECK:STDOUT: %.c3f: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.9a7) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.facet.105: %DefaultOrUnformed.type = facet_value %array_type.9a7, (%DefaultOrUnformed.lookup_impl_witness.494) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.fbb: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.105) [symbolic] +// CHECK:STDOUT: %.631: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.fbb, %DefaultOrUnformed.facet.105 [symbolic] +// CHECK:STDOUT: %impl.elem0.d50: %.631 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.494, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.6bf: = specific_impl_function %impl.elem0.d50, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.105) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.20f: = lookup_impl_witness %array_type.9a7, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.08a: %Destroy.type = facet_value %array_type.9a7, (%Destroy.lookup_impl_witness.20f) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.4bf: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.08a) [symbolic] +// CHECK:STDOUT: %.585: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.4bf, %Destroy.facet.08a [symbolic] +// CHECK:STDOUT: %impl.elem0.0f1: %.585 = impl_witness_access %Destroy.lookup_impl_witness.20f, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.66a: = specific_impl_function %impl.elem0.0f1, @Destroy.WithSelf.Op(%Destroy.facet.08a) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.60b: = lookup_impl_witness %struct_type.a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.7a2: %Destroy.type = facet_value %struct_type.a, (%Destroy.lookup_impl_witness.60b) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.76b: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.7a2) [symbolic] +// CHECK:STDOUT: %.f3c: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.76b, %Destroy.facet.7a2 [symbolic] +// CHECK:STDOUT: %impl.elem0.8ab: %.f3c = impl_witness_access %Destroy.lookup_impl_witness.60b, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.27c: = specific_impl_function %impl.elem0.8ab, @Destroy.WithSelf.Op(%Destroy.facet.7a2) [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.b64: = lookup_impl_witness %tuple.type.a8a, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.f64: %Destroy.type = facet_value %tuple.type.a8a, (%Destroy.lookup_impl_witness.b64) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.671: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.f64) [symbolic] +// CHECK:STDOUT: %.1e2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.671, %Destroy.facet.f64 [symbolic] +// CHECK:STDOUT: %impl.elem0.942: %.1e2 = impl_witness_access %Destroy.lookup_impl_witness.b64, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b52: = specific_impl_function %impl.elem0.942, @Destroy.WithSelf.Op(%Destroy.facet.f64) [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %N.5de: %i32 = symbolic_binding N, 0 [symbolic] @@ -586,143 +586,143 @@ fn G(N:! i32) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc4_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %ptr.loc6_19.2: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc6_19.2 (constants.%ptr.ef1)] -// CHECK:STDOUT: %const.loc6_22.2: type = const_type %T.binding.as_type [symbolic = %const.loc6_22.2 (constants.%const)] +// CHECK:STDOUT: %T.as_type.loc6_19.2: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %ptr.loc6_19.2: type = ptr_type %T.as_type.loc6_19.2 [symbolic = %ptr.loc6_19.2 (constants.%ptr.e44)] +// CHECK:STDOUT: %const.loc6_22.2: type = const_type %T.as_type.loc6_19.2 [symbolic = %const.loc6_22.2 (constants.%const)] // CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple (constants.%tuple)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple.type (constants.%tuple.type.3d1)] -// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %tuple.type [symbolic = %require_complete.loc6 (constants.%require_complete.fd4)] -// CHECK:STDOUT: %pattern_type.loc6: type = pattern_type %tuple.type [symbolic = %pattern_type.loc6 (constants.%pattern_type.3d7)] -// CHECK:STDOUT: %.loc6_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type) [symbolic = %.loc6_30.3 (constants.%.aad)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc6 (constants.%DefaultOrUnformed.lookup_impl_witness.10f)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.2: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.lookup_impl_witness.loc6) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.735)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc6 (constants.%DefaultOrUnformed.WithSelf.Op.type.7cc)] -// CHECK:STDOUT: %.loc6_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc6, %DefaultOrUnformed.facet.loc6_30.2 [symbolic = %.loc6_30.4 (constants.%.fc3)] -// CHECK:STDOUT: %impl.elem0.loc6_30.2: @F.%.loc6_30.4 (%.fc3) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.5de)] -// CHECK:STDOUT: %specific_impl_fn.loc6_30.2: = specific_impl_function %impl.elem0.loc6_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.289)] -// CHECK:STDOUT: %struct_type.a.loc7_23.2: type = struct_type {.a: @F.%T.binding.as_type (%T.binding.as_type.140)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %require_complete.loc7: = require_complete_type %struct_type.a.loc7_23.2 [symbolic = %require_complete.loc7 (constants.%require_complete.964)] -// CHECK:STDOUT: %pattern_type.loc7: type = pattern_type %struct_type.a.loc7_23.2 [symbolic = %pattern_type.loc7 (constants.%pattern_type.f2e)] -// CHECK:STDOUT: %.loc7_24.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a.loc7_23.2) [symbolic = %.loc7_24.3 (constants.%.a3f)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc7 (constants.%DefaultOrUnformed.lookup_impl_witness.ee5)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.2: %DefaultOrUnformed.type = facet_value %struct_type.a.loc7_23.2, (%DefaultOrUnformed.lookup_impl_witness.loc7) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.e47)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc7: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc7 (constants.%DefaultOrUnformed.WithSelf.Op.type.487)] -// CHECK:STDOUT: %.loc7_24.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc7, %DefaultOrUnformed.facet.loc7_24.2 [symbolic = %.loc7_24.4 (constants.%.d49)] -// CHECK:STDOUT: %impl.elem0.loc7_24.2: @F.%.loc7_24.4 (%.d49) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.760)] -// CHECK:STDOUT: %specific_impl_fn.loc7_24.2: = specific_impl_function %impl.elem0.loc7_24.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.d5b)] -// CHECK:STDOUT: %array_type.loc8_27.2: type = array_type constants.%int_5, %T.binding.as_type [symbolic = %array_type.loc8_27.2 (constants.%array_type.750)] -// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %array_type.loc8_27.2 [symbolic = %require_complete.loc8 (constants.%require_complete.32a)] -// CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_27.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.e81)] -// CHECK:STDOUT: %.loc8_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc8_27.2) [symbolic = %.loc8_28.3 (constants.%.adf)] -// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc8 (constants.%DefaultOrUnformed.lookup_impl_witness.b97)] -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.2: %DefaultOrUnformed.type = facet_value %array_type.loc8_27.2, (%DefaultOrUnformed.lookup_impl_witness.loc8) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.cc0)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc8: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc8 (constants.%DefaultOrUnformed.WithSelf.Op.type.dff)] -// CHECK:STDOUT: %.loc8_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc8, %DefaultOrUnformed.facet.loc8_28.2 [symbolic = %.loc8_28.4 (constants.%.86d)] -// CHECK:STDOUT: %impl.elem0.loc8_28.2: @F.%.loc8_28.4 (%.86d) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.0e2)] -// CHECK:STDOUT: %specific_impl_fn.loc8_28.2: = specific_impl_function %impl.elem0.loc8_28.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.9f7)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc8 (constants.%Destroy.lookup_impl_witness.b42)] -// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_27.2, (%Destroy.lookup_impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.e98)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc8: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc8) [symbolic = %Destroy.WithSelf.Op.type.loc8 (constants.%Destroy.WithSelf.Op.type.1a4)] -// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc8, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.1f4)] -// CHECK:STDOUT: %impl.elem0.loc8_3.2: @F.%.loc8_3.2 (%.1f4) = impl_witness_access %Destroy.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.dcc)] -// CHECK:STDOUT: %specific_impl_fn.loc8_3.2: = specific_impl_function %impl.elem0.loc8_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc8) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.ef1)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc7 (constants.%Destroy.lookup_impl_witness.2a6)] -// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_23.2, (%Destroy.lookup_impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.884)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7) [symbolic = %Destroy.WithSelf.Op.type.loc7 (constants.%Destroy.WithSelf.Op.type.80d)] -// CHECK:STDOUT: %.loc7_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc7, %Destroy.facet.loc7 [symbolic = %.loc7_3 (constants.%.b19)] -// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3 (%.b19) = impl_witness_access %Destroy.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.0c6)] -// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.d3c)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc6 (constants.%Destroy.lookup_impl_witness.7e1)] -// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.753)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc6) [symbolic = %Destroy.WithSelf.Op.type.loc6 (constants.%Destroy.WithSelf.Op.type.c24)] -// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc6, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.958)] -// CHECK:STDOUT: %impl.elem0.loc6_3.2: @F.%.loc6_3.2 (%.958) = impl_witness_access %Destroy.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.9bc)] -// CHECK:STDOUT: %specific_impl_fn.loc6_3.2: = specific_impl_function %impl.elem0.loc6_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.33d)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc6_19.2, %const.loc6_22.2) [symbolic = %tuple.type (constants.%tuple.type.a8a)] +// CHECK:STDOUT: %require_complete.loc6: = require_complete_type %tuple.type [symbolic = %require_complete.loc6 (constants.%require_complete.d1a)] +// CHECK:STDOUT: %pattern_type.loc6: type = pattern_type %tuple.type [symbolic = %pattern_type.loc6 (constants.%pattern_type.e0b)] +// CHECK:STDOUT: %.loc6_30.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%tuple.type) [symbolic = %.loc6_30.3 (constants.%.e36)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc6 (constants.%DefaultOrUnformed.lookup_impl_witness.e24)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.2: %DefaultOrUnformed.type = facet_value %tuple.type, (%DefaultOrUnformed.lookup_impl_witness.loc6) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.b88)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc6: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc6 (constants.%DefaultOrUnformed.WithSelf.Op.type.15a)] +// CHECK:STDOUT: %.loc6_30.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc6, %DefaultOrUnformed.facet.loc6_30.2 [symbolic = %.loc6_30.4 (constants.%.742)] +// CHECK:STDOUT: %impl.elem0.loc6_30.2: @F.%.loc6_30.4 (%.742) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.ba1)] +// CHECK:STDOUT: %specific_impl_fn.loc6_30.2: = specific_impl_function %impl.elem0.loc6_30.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc6_30.2) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.812)] +// CHECK:STDOUT: %struct_type.a.loc7_23.2: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.2e9)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %require_complete.loc7: = require_complete_type %struct_type.a.loc7_23.2 [symbolic = %require_complete.loc7 (constants.%require_complete.406)] +// CHECK:STDOUT: %pattern_type.loc7: type = pattern_type %struct_type.a.loc7_23.2 [symbolic = %pattern_type.loc7 (constants.%pattern_type.250)] +// CHECK:STDOUT: %.loc7_24.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%struct_type.a.loc7_23.2) [symbolic = %.loc7_24.3 (constants.%.9f3)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc7 (constants.%DefaultOrUnformed.lookup_impl_witness.92c)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.2: %DefaultOrUnformed.type = facet_value %struct_type.a.loc7_23.2, (%DefaultOrUnformed.lookup_impl_witness.loc7) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.12a)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc7: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc7 (constants.%DefaultOrUnformed.WithSelf.Op.type.b30)] +// CHECK:STDOUT: %.loc7_24.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc7, %DefaultOrUnformed.facet.loc7_24.2 [symbolic = %.loc7_24.4 (constants.%.c9d)] +// CHECK:STDOUT: %impl.elem0.loc7_24.2: @F.%.loc7_24.4 (%.c9d) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.ab4)] +// CHECK:STDOUT: %specific_impl_fn.loc7_24.2: = specific_impl_function %impl.elem0.loc7_24.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc7_24.2) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.c9a)] +// CHECK:STDOUT: %array_type.loc8_27.2: type = array_type constants.%int_5, %T.as_type.loc6_19.2 [symbolic = %array_type.loc8_27.2 (constants.%array_type.9a7)] +// CHECK:STDOUT: %require_complete.loc8: = require_complete_type %array_type.loc8_27.2 [symbolic = %require_complete.loc8 (constants.%require_complete.f70)] +// CHECK:STDOUT: %pattern_type.loc8: type = pattern_type %array_type.loc8_27.2 [symbolic = %pattern_type.loc8 (constants.%pattern_type.047)] +// CHECK:STDOUT: %.loc8_28.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%array_type.loc8_27.2) [symbolic = %.loc8_28.3 (constants.%.c3f)] +// CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness.loc8 (constants.%DefaultOrUnformed.lookup_impl_witness.494)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.2: %DefaultOrUnformed.type = facet_value %array_type.loc8_27.2, (%DefaultOrUnformed.lookup_impl_witness.loc8) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.105)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.loc8: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type.loc8 (constants.%DefaultOrUnformed.WithSelf.Op.type.fbb)] +// CHECK:STDOUT: %.loc8_28.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.loc8, %DefaultOrUnformed.facet.loc8_28.2 [symbolic = %.loc8_28.4 (constants.%.631)] +// CHECK:STDOUT: %impl.elem0.loc8_28.2: @F.%.loc8_28.4 (%.631) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.d50)] +// CHECK:STDOUT: %specific_impl_fn.loc8_28.2: = specific_impl_function %impl.elem0.loc8_28.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc8_28.2) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc8: = lookup_impl_witness %array_type.loc8_27.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc8 (constants.%Destroy.lookup_impl_witness.20f)] +// CHECK:STDOUT: %Destroy.facet.loc8: %Destroy.type = facet_value %array_type.loc8_27.2, (%Destroy.lookup_impl_witness.loc8) [symbolic = %Destroy.facet.loc8 (constants.%Destroy.facet.08a)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc8: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc8) [symbolic = %Destroy.WithSelf.Op.type.loc8 (constants.%Destroy.WithSelf.Op.type.4bf)] +// CHECK:STDOUT: %.loc8_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc8, %Destroy.facet.loc8 [symbolic = %.loc8_3.2 (constants.%.585)] +// CHECK:STDOUT: %impl.elem0.loc8_3.2: @F.%.loc8_3.2 (%.585) = impl_witness_access %Destroy.lookup_impl_witness.loc8, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.0f1)] +// CHECK:STDOUT: %specific_impl_fn.loc8_3.2: = specific_impl_function %impl.elem0.loc8_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc8) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.66a)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc7: = lookup_impl_witness %struct_type.a.loc7_23.2, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc7 (constants.%Destroy.lookup_impl_witness.60b)] +// CHECK:STDOUT: %Destroy.facet.loc7: %Destroy.type = facet_value %struct_type.a.loc7_23.2, (%Destroy.lookup_impl_witness.loc7) [symbolic = %Destroy.facet.loc7 (constants.%Destroy.facet.7a2)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc7: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc7) [symbolic = %Destroy.WithSelf.Op.type.loc7 (constants.%Destroy.WithSelf.Op.type.76b)] +// CHECK:STDOUT: %.loc7_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc7, %Destroy.facet.loc7 [symbolic = %.loc7_3 (constants.%.f3c)] +// CHECK:STDOUT: %impl.elem0.loc7_3.2: @F.%.loc7_3 (%.f3c) = impl_witness_access %Destroy.lookup_impl_witness.loc7, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.8ab)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.2: = specific_impl_function %impl.elem0.loc7_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc7) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.27c)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.loc6: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness.loc6 (constants.%Destroy.lookup_impl_witness.b64)] +// CHECK:STDOUT: %Destroy.facet.loc6: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness.loc6) [symbolic = %Destroy.facet.loc6 (constants.%Destroy.facet.f64)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.loc6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.loc6) [symbolic = %Destroy.WithSelf.Op.type.loc6 (constants.%Destroy.WithSelf.Op.type.671)] +// CHECK:STDOUT: %.loc6_3.2: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.loc6, %Destroy.facet.loc6 [symbolic = %.loc6_3.2 (constants.%.1e2)] +// CHECK:STDOUT: %impl.elem0.loc6_3.2: @F.%.loc6_3.2 (%.1e2) = impl_witness_access %Destroy.lookup_impl_witness.loc6, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.942)] +// CHECK:STDOUT: %specific_impl_fn.loc6_3.2: = specific_impl_function %impl.elem0.loc6_3.2, @Destroy.WithSelf.Op(%Destroy.facet.loc6) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.b52)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %u.patt: @F.%pattern_type.loc6 (%pattern_type.3d7) = ref_binding_pattern u [concrete] -// CHECK:STDOUT: %u.var_patt: @F.%pattern_type.loc6 (%pattern_type.3d7) = var_pattern %u.patt [concrete] +// CHECK:STDOUT: %u.patt: @F.%pattern_type.loc6 (%pattern_type.e0b) = ref_binding_pattern u [concrete] +// CHECK:STDOUT: %u.var_patt: @F.%pattern_type.loc6 (%pattern_type.e0b) = var_pattern %u.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.3d1) = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.1: %DefaultOrUnformed.type = facet_value constants.%tuple.type.3d1, (constants.%DefaultOrUnformed.lookup_impl_witness.10f) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.735)] -// CHECK:STDOUT: %.loc6_30.1: %DefaultOrUnformed.type = converted constants.%tuple.type.3d1, %DefaultOrUnformed.facet.loc6_30.1 [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.735)] -// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_30.1 [symbolic = %tuple.type (constants.%tuple.type.3d1)] -// CHECK:STDOUT: %.loc6_30.2: type = converted %.loc6_30.1, %as_type.loc6 [symbolic = %tuple.type (constants.%tuple.type.3d1)] -// CHECK:STDOUT: %impl.elem0.loc6_30.1: @F.%.loc6_30.4 (%.fc3) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.10f, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.5de)] -// CHECK:STDOUT: %specific_impl_fn.loc6_30.1: = specific_impl_function %impl.elem0.loc6_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.735) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.289)] -// CHECK:STDOUT: %.loc6_3.1: ref @F.%tuple.type (%tuple.type.3d1) = splice_block %u.var {} -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc6: init @F.%tuple.type (%tuple.type.3d1) to %.loc6_3.1 = call %specific_impl_fn.loc6_30.1() +// CHECK:STDOUT: %u.var: ref @F.%tuple.type (%tuple.type.a8a) = var %u.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc6_30.1: %DefaultOrUnformed.type = facet_value constants.%tuple.type.a8a, (constants.%DefaultOrUnformed.lookup_impl_witness.e24) [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.b88)] +// CHECK:STDOUT: %.loc6_30.1: %DefaultOrUnformed.type = converted constants.%tuple.type.a8a, %DefaultOrUnformed.facet.loc6_30.1 [symbolic = %DefaultOrUnformed.facet.loc6_30.2 (constants.%DefaultOrUnformed.facet.b88)] +// CHECK:STDOUT: %as_type.loc6: type = facet_access_type %.loc6_30.1 [symbolic = %tuple.type (constants.%tuple.type.a8a)] +// CHECK:STDOUT: %.loc6_30.2: type = converted %.loc6_30.1, %as_type.loc6 [symbolic = %tuple.type (constants.%tuple.type.a8a)] +// CHECK:STDOUT: %impl.elem0.loc6_30.1: @F.%.loc6_30.4 (%.742) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.e24, element0 [symbolic = %impl.elem0.loc6_30.2 (constants.%impl.elem0.ba1)] +// CHECK:STDOUT: %specific_impl_fn.loc6_30.1: = specific_impl_function %impl.elem0.loc6_30.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.b88) [symbolic = %specific_impl_fn.loc6_30.2 (constants.%specific_impl_fn.812)] +// CHECK:STDOUT: %.loc6_3.1: ref @F.%tuple.type (%tuple.type.a8a) = splice_block %u.var {} +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc6: init @F.%tuple.type (%tuple.type.a8a) to %.loc6_3.1 = call %specific_impl_fn.loc6_30.1() // CHECK:STDOUT: assign %u.var, %DefaultOrUnformed.WithSelf.Op.call.loc6 -// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.3 [symbolic = %tuple.type (constants.%tuple.type.3d1)] { +// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.3 [symbolic = %tuple.type (constants.%tuple.type.a8a)] { // CHECK:STDOUT: %T.ref.loc6_18: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.765)] -// CHECK:STDOUT: %T.as_type.loc6_19: type = facet_access_type %T.ref.loc6_18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc6_19: type = converted %T.ref.loc6_18, %T.as_type.loc6_19 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %.loc6_19 [symbolic = %ptr.loc6_19.2 (constants.%ptr.ef1)] +// CHECK:STDOUT: %T.as_type.loc6_19.1: type = facet_access_type %T.ref.loc6_18 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc6_19: type = converted %T.ref.loc6_18, %T.as_type.loc6_19.1 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %ptr.loc6_19.1: type = ptr_type %.loc6_19 [symbolic = %ptr.loc6_19.2 (constants.%ptr.e44)] // CHECK:STDOUT: %T.ref.loc6_28: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.765)] -// CHECK:STDOUT: %T.as_type.loc6_22: type = facet_access_type %T.ref.loc6_28 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc6_22: type = converted %T.ref.loc6_28, %T.as_type.loc6_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] +// CHECK:STDOUT: %T.as_type.loc6_22: type = facet_access_type %T.ref.loc6_28 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc6_22: type = converted %T.ref.loc6_28, %T.as_type.loc6_22 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] // CHECK:STDOUT: %const.loc6_22.1: type = const_type %.loc6_22 [symbolic = %const.loc6_22.2 (constants.%const)] // CHECK:STDOUT: %.loc6_29.2: %tuple.type.24b = tuple_literal (%ptr.loc6_19.1, %const.loc6_22.1) [symbolic = %tuple (constants.%tuple)] -// CHECK:STDOUT: %.loc6_29.3: type = converted %.loc6_29.2, constants.%tuple.type.3d1 [symbolic = %tuple.type (constants.%tuple.type.3d1)] +// CHECK:STDOUT: %.loc6_29.3: type = converted %.loc6_29.2, constants.%tuple.type.a8a [symbolic = %tuple.type (constants.%tuple.type.a8a)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.3d1) = ref_binding u, %u.var +// CHECK:STDOUT: %u: ref @F.%tuple.type (%tuple.type.a8a) = ref_binding u, %u.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type.loc7 (%pattern_type.f2e) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type.loc7 (%pattern_type.f2e) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type.loc7 (%pattern_type.250) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type.loc7 (%pattern_type.250) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.1: %DefaultOrUnformed.type = facet_value constants.%struct_type.a, (constants.%DefaultOrUnformed.lookup_impl_witness.ee5) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.e47)] -// CHECK:STDOUT: %.loc7_24.1: %DefaultOrUnformed.type = converted constants.%struct_type.a, %DefaultOrUnformed.facet.loc7_24.1 [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.e47)] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7_24.1: %DefaultOrUnformed.type = facet_value constants.%struct_type.a, (constants.%DefaultOrUnformed.lookup_impl_witness.92c) [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.12a)] +// CHECK:STDOUT: %.loc7_24.1: %DefaultOrUnformed.type = converted constants.%struct_type.a, %DefaultOrUnformed.facet.loc7_24.1 [symbolic = %DefaultOrUnformed.facet.loc7_24.2 (constants.%DefaultOrUnformed.facet.12a)] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_24.1 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] // CHECK:STDOUT: %.loc7_24.2: type = converted %.loc7_24.1, %as_type.loc7 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] -// CHECK:STDOUT: %impl.elem0.loc7_24.1: @F.%.loc7_24.4 (%.d49) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.ee5, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.760)] -// CHECK:STDOUT: %specific_impl_fn.loc7_24.1: = specific_impl_function %impl.elem0.loc7_24.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.e47) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.d5b)] +// CHECK:STDOUT: %impl.elem0.loc7_24.1: @F.%.loc7_24.4 (%.c9d) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.92c, element0 [symbolic = %impl.elem0.loc7_24.2 (constants.%impl.elem0.ab4)] +// CHECK:STDOUT: %specific_impl_fn.loc7_24.1: = specific_impl_function %impl.elem0.loc7_24.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.12a) [symbolic = %specific_impl_fn.loc7_24.2 (constants.%specific_impl_fn.c9a)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc7: init @F.%struct_type.a.loc7_23.2 (%struct_type.a) = call %specific_impl_fn.loc7_24.1() // CHECK:STDOUT: assign %v.var, %DefaultOrUnformed.WithSelf.Op.call.loc7 // CHECK:STDOUT: %.loc7_23: type = splice_block %struct_type.a.loc7_23.1 [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] { // CHECK:STDOUT: %T.ref.loc7: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.765)] -// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc7_22: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %struct_type.a.loc7_23.1: type = struct_type {.a: @F.%T.binding.as_type (%T.binding.as_type.140)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.as_type.loc7: type = facet_access_type %T.ref.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc7_22: type = converted %T.ref.loc7, %T.as_type.loc7 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %struct_type.a.loc7_23.1: type = struct_type {.a: @F.%T.as_type.loc6_19.2 (%T.as_type.2e9)} [symbolic = %struct_type.a.loc7_23.2 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %v: ref @F.%struct_type.a.loc7_23.2 (%struct_type.a) = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %w.patt: @F.%pattern_type.loc8 (%pattern_type.e81) = ref_binding_pattern w [concrete] -// CHECK:STDOUT: %w.var_patt: @F.%pattern_type.loc8 (%pattern_type.e81) = var_pattern %w.patt [concrete] +// CHECK:STDOUT: %w.patt: @F.%pattern_type.loc8 (%pattern_type.047) = ref_binding_pattern w [concrete] +// CHECK:STDOUT: %w.var_patt: @F.%pattern_type.loc8 (%pattern_type.047) = var_pattern %w.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_27.2 (%array_type.750) = var %w.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.1: %DefaultOrUnformed.type = facet_value constants.%array_type.750, (constants.%DefaultOrUnformed.lookup_impl_witness.b97) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.cc0)] -// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%array_type.750, %DefaultOrUnformed.facet.loc8_28.1 [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.cc0)] -// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.750)] -// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [symbolic = %array_type.loc8_27.2 (constants.%array_type.750)] -// CHECK:STDOUT: %impl.elem0.loc8_28.1: @F.%.loc8_28.4 (%.86d) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.b97, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.0e2)] -// CHECK:STDOUT: %specific_impl_fn.loc8_28.1: = specific_impl_function %impl.elem0.loc8_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.cc0) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.9f7)] -// CHECK:STDOUT: %.loc8_3.1: ref @F.%array_type.loc8_27.2 (%array_type.750) = splice_block %w.var {} -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc8: init @F.%array_type.loc8_27.2 (%array_type.750) to %.loc8_3.1 = call %specific_impl_fn.loc8_28.1() +// CHECK:STDOUT: %w.var: ref @F.%array_type.loc8_27.2 (%array_type.9a7) = var %w.var_patt +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8_28.1: %DefaultOrUnformed.type = facet_value constants.%array_type.9a7, (constants.%DefaultOrUnformed.lookup_impl_witness.494) [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.105)] +// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%array_type.9a7, %DefaultOrUnformed.facet.loc8_28.1 [symbolic = %DefaultOrUnformed.facet.loc8_28.2 (constants.%DefaultOrUnformed.facet.105)] +// CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.9a7)] +// CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [symbolic = %array_type.loc8_27.2 (constants.%array_type.9a7)] +// CHECK:STDOUT: %impl.elem0.loc8_28.1: @F.%.loc8_28.4 (%.631) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness.494, element0 [symbolic = %impl.elem0.loc8_28.2 (constants.%impl.elem0.d50)] +// CHECK:STDOUT: %specific_impl_fn.loc8_28.1: = specific_impl_function %impl.elem0.loc8_28.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet.105) [symbolic = %specific_impl_fn.loc8_28.2 (constants.%specific_impl_fn.6bf)] +// CHECK:STDOUT: %.loc8_3.1: ref @F.%array_type.loc8_27.2 (%array_type.9a7) = splice_block %w.var {} +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call.loc8: init @F.%array_type.loc8_27.2 (%array_type.9a7) to %.loc8_3.1 = call %specific_impl_fn.loc8_28.1() // CHECK:STDOUT: assign %w.var, %DefaultOrUnformed.WithSelf.Op.call.loc8 -// CHECK:STDOUT: %.loc8_27: type = splice_block %array_type.loc8_27.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.750)] { +// CHECK:STDOUT: %.loc8_27: type = splice_block %array_type.loc8_27.1 [symbolic = %array_type.loc8_27.2 (constants.%array_type.9a7)] { // CHECK:STDOUT: %T.ref.loc8: %Destroy.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T.765)] // CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [concrete = constants.%int_5] -// CHECK:STDOUT: %T.as_type.loc8: type = facet_access_type %T.ref.loc8 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc8_23: type = converted %T.ref.loc8, %T.as_type.loc8 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %array_type.loc8_27.1: type = array_type %int_5, %.loc8_23 [symbolic = %array_type.loc8_27.2 (constants.%array_type.750)] +// CHECK:STDOUT: %T.as_type.loc8: type = facet_access_type %T.ref.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc8_23: type = converted %T.ref.loc8, %T.as_type.loc8 [symbolic = %T.as_type.loc6_19.2 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %array_type.loc8_27.1: type = array_type %int_5, %.loc8_23 [symbolic = %array_type.loc8_27.2 (constants.%array_type.9a7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: ref @F.%array_type.loc8_27.2 (%array_type.750) = ref_binding w, %w.var -// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.2 (%.1f4) = impl_witness_access constants.%Destroy.lookup_impl_witness.b42, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.dcc)] +// CHECK:STDOUT: %w: ref @F.%array_type.loc8_27.2 (%array_type.9a7) = ref_binding w, %w.var +// CHECK:STDOUT: %impl.elem0.loc8_3.1: @F.%.loc8_3.2 (%.585) = impl_witness_access constants.%Destroy.lookup_impl_witness.20f, element0 [symbolic = %impl.elem0.loc8_3.2 (constants.%impl.elem0.0f1)] // CHECK:STDOUT: %bound_method.loc8_3.1: = bound_method %w.var, %impl.elem0.loc8_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc8_3.1: = specific_impl_function %impl.elem0.loc8_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.e98) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.ef1)] +// CHECK:STDOUT: %specific_impl_fn.loc8_3.1: = specific_impl_function %impl.elem0.loc8_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.08a) [symbolic = %specific_impl_fn.loc8_3.2 (constants.%specific_impl_fn.66a)] // CHECK:STDOUT: %bound_method.loc8_3.2: = bound_method %w.var, %specific_impl_fn.loc8_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8_3.2(%w.var) -// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3 (%.b19) = impl_witness_access constants.%Destroy.lookup_impl_witness.2a6, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.0c6)] +// CHECK:STDOUT: %impl.elem0.loc7_3.1: @F.%.loc7_3 (%.f3c) = impl_witness_access constants.%Destroy.lookup_impl_witness.60b, element0 [symbolic = %impl.elem0.loc7_3.2 (constants.%impl.elem0.8ab)] // CHECK:STDOUT: %bound_method.loc7_3.1: = bound_method %v.var, %impl.elem0.loc7_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.884) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.d3c)] +// CHECK:STDOUT: %specific_impl_fn.loc7_3.1: = specific_impl_function %impl.elem0.loc7_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.7a2) [symbolic = %specific_impl_fn.loc7_3.2 (constants.%specific_impl_fn.27c)] // CHECK:STDOUT: %bound_method.loc7_3.2: = bound_method %v.var, %specific_impl_fn.loc7_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7_3.2(%v.var) -// CHECK:STDOUT: %impl.elem0.loc6_3.1: @F.%.loc6_3.2 (%.958) = impl_witness_access constants.%Destroy.lookup_impl_witness.7e1, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.9bc)] +// CHECK:STDOUT: %impl.elem0.loc6_3.1: @F.%.loc6_3.2 (%.1e2) = impl_witness_access constants.%Destroy.lookup_impl_witness.b64, element0 [symbolic = %impl.elem0.loc6_3.2 (constants.%impl.elem0.942)] // CHECK:STDOUT: %bound_method.loc6_3.1: = bound_method %u.var, %impl.elem0.loc6_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc6_3.1: = specific_impl_function %impl.elem0.loc6_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.753) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.33d)] +// CHECK:STDOUT: %specific_impl_fn.loc6_3.1: = specific_impl_function %impl.elem0.loc6_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.f64) [symbolic = %specific_impl_fn.loc6_3.2 (constants.%specific_impl_fn.b52)] // CHECK:STDOUT: %bound_method.loc6_3.2: = bound_method %u.var, %specific_impl_fn.loc6_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call.loc6: init %empty_tuple.type = call %bound_method.loc6_3.2(%u.var) // CHECK:STDOUT: diff --git a/toolchain/check/testdata/eval/symbolic.carbon b/toolchain/check/testdata/eval/symbolic.carbon index ad3ec0e8531a..031c6d9cc2aa 100644 --- a/toolchain/check/testdata/eval/symbolic.carbon +++ b/toolchain/check/testdata/eval/symbolic.carbon @@ -76,7 +76,7 @@ fn F() { // CHECK:STDOUT: %Z.impl_witness: = impl_witness @empty_struct_type.as.Z.impl.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Z.facet: %Z.type = facet_value %empty_struct_type, (%Z.impl_witness) [concrete] // CHECK:STDOUT: %U.ea3: %Z.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.9bf: type = symbolic_binding_type U, 0, %U.ea3 [symbolic] +// CHECK:STDOUT: %U.as_type.829: type = facet_access_type %U.ea3 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.impl_witness.b47: = impl_witness imports.%Copy.impl_witness_table.b1c [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.b47) [concrete] @@ -84,7 +84,7 @@ fn F() { // CHECK:STDOUT: %.070: type = fn_type_with_self_type %Copy.WithSelf.Op.type.a4f, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op: %type.as.Copy.impl.Op.type = struct_value () [concrete] -// CHECK:STDOUT: %type.as.Copy.impl.Op.bound.16c: = bound_method %U.binding.as_type.9bf, %type.as.Copy.impl.Op [symbolic] +// CHECK:STDOUT: %type.as.Copy.impl.Op.bound.500: = bound_method %U.as_type.829, %type.as.Copy.impl.Op [symbolic] // CHECK:STDOUT: %type.as.Copy.impl.Op.bound.bca: = bound_method %empty_struct_type, %type.as.Copy.impl.Op [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -97,17 +97,17 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc6_12.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.9bf)] -// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %U.binding.as_type, constants.%type.as.Copy.impl.Op [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.16c)] +// CHECK:STDOUT: %U.as_type.loc11_11.2: type = facet_access_type %U.loc6_12.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.829)] +// CHECK:STDOUT: %type.as.Copy.impl.Op.bound: = bound_method %U.as_type.loc11_11.2, constants.%type.as.Copy.impl.Op [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.500)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: type { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %U.ref: %Z.type = name_ref U, %U.loc6_12.2 [symbolic = %U.loc6_12.1 (constants.%U.ea3)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type.9bf)] -// CHECK:STDOUT: %.loc11: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type.9bf)] +// CHECK:STDOUT: %U.as_type.loc11_11.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.829)] +// CHECK:STDOUT: %.loc11: type = converted %U.ref, %U.as_type.loc11_11.1 [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.829)] // CHECK:STDOUT: %impl.elem0: %.070 = impl_witness_access constants.%Copy.impl_witness.b47, element0 [concrete = constants.%type.as.Copy.impl.Op] -// CHECK:STDOUT: %bound_method: = bound_method %.loc11, %impl.elem0 [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.16c)] -// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc11) [symbolic = %U.binding.as_type (constants.%U.binding.as_type.9bf)] +// CHECK:STDOUT: %bound_method: = bound_method %.loc11, %impl.elem0 [symbolic = %type.as.Copy.impl.Op.bound (constants.%type.as.Copy.impl.Op.bound.500)] +// CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc11) [symbolic = %U.as_type.loc11_11.2 (constants.%U.as_type.829)] // CHECK:STDOUT: return %type.as.Copy.impl.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -120,7 +120,7 @@ fn F() { // CHECK:STDOUT: %U.loc6_12.1 => constants.%Z.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %U.as_type.loc11_11.2 => constants.%empty_struct_type // CHECK:STDOUT: %type.as.Copy.impl.Op.bound => constants.%type.as.Copy.impl.Op.bound.bca // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/access.carbon b/toolchain/check/testdata/facet/access.carbon index 802c605aa996..f5e85fee4465 100644 --- a/toolchain/check/testdata/facet/access.carbon +++ b/toolchain/check/testdata/facet/access.carbon @@ -356,7 +356,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.DoIt.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %I.WithSelf.DoIt.type.66b: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.f37: type = fn_type_with_self_type %I.WithSelf.DoIt.type.66b, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.f37 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -367,7 +367,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc10_4.2: type = facet_access_type %T.loc8_9.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %I.WithSelf.DoIt.type: type = fn_type @I.WithSelf.DoIt, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.DoIt.type (constants.%I.WithSelf.DoIt.type.66b)] // CHECK:STDOUT: %.loc10_4.2: type = fn_type_with_self_type %I.WithSelf.DoIt.type, %T.loc8_9.1 [symbolic = %.loc10_4.2 (constants.%.f37)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] @@ -377,8 +377,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_9.2 [symbolic = %T.loc8_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_4.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc10_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_4.1: type = converted %T.ref, %T.as_type.loc10_4.1 [symbolic = %T.as_type.loc10_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %DoIt.ref: %I.assoc_type = name_ref DoIt, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10_4.2 (%.f37) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.WithSelf.DoIt(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] @@ -398,9 +398,9 @@ fn F2(U:! Z) { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Make.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %.ff7: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %.ae9: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.Make.type.f20: type = fn_type @I.WithSelf.Make, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.8e2: type = fn_type_with_self_type %I.WithSelf.Make.type.f20, %T [symbolic] @@ -419,25 +419,25 @@ fn F2(U:! Z) { // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10_11.2 (%.8e2) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.WithSelf.Make(%T.loc8_9.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Use.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn() -> out %return.param: @Use.%T.as_type.loc8_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_9.2 [symbolic = %T.loc8_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_11.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_18.1 (constants.%T.as_type)] // CHECK:STDOUT: %Make.ref: %I.assoc_type = name_ref Make, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10_11.2 (%.8e2) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.WithSelf.Make(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: %I.WithSelf.Make.call: init @Use.%T.binding.as_type (%T.binding.as_type) to %.loc8_18.1 = call %specific_impl_fn.loc10_11.1() +// CHECK:STDOUT: %I.WithSelf.Make.call: init @Use.%T.as_type.loc8_18.1 (%T.as_type) to %.loc8_18.1 = call %specific_impl_fn.loc10_11.1() // CHECK:STDOUT: return %I.WithSelf.Make.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_9.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc8_18.2 => constants.%.ff7 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc8_18.2 => constants.%.ae9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method.carbon @@ -448,12 +448,12 @@ fn F2(U:! Z) { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Copy.decl [concrete] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.ff7: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.ae9: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.Copy.type.035: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.fa6: type = fn_type_with_self_type %I.WithSelf.Copy.type.035, %T [symbolic] @@ -464,65 +464,65 @@ fn F2(U:! Z) { // CHECK:STDOUT: file { // CHECK:STDOUT: %Use.decl: %Use.type = fn_decl @Use [concrete = constants.%Use] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.422) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.422) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.422) = return_slot_pattern %return.param_patt, %.loc9_24.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @Use.%pattern_type (%pattern_type.f4e) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Use.%pattern_type (%pattern_type.f4e) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Use.%pattern_type (%pattern_type.f4e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Use.%pattern_type (%pattern_type.f4e) = return_slot_pattern %return.param_patt, %.loc9_24.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_24: %I.type = name_ref T, %T.loc9_9.2 [symbolic = %T.loc9_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_24.3: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_24.4: Core.Form = init_form %.loc9_24.3 [symbolic = %.loc9_24.2 (constants.%.ff7)] +// CHECK:STDOUT: %T.as_type.loc9_24: type = facet_access_type %T.ref.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_24.3: type = converted %T.ref.loc9_24, %T.as_type.loc9_24 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_24.4: Core.Form = init_form %.loc9_24.3 [symbolic = %.loc9_24.2 (constants.%.ae9)] // CHECK:STDOUT: %.loc9_12: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_9.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_9.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Use.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_18.1: type = splice_block %.loc9_18.2 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc9_18: %I.type = name_ref T, %T.loc9_9.2 [symbolic = %T.loc9_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_18: type = facet_access_type %T.ref.loc9_18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_18.2: type = converted %T.ref.loc9_18, %T.as_type.loc9_18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_18.2: type = facet_access_type %T.ref.loc9_18 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_18.2: type = converted %T.ref.loc9_18, %T.as_type.loc9_18.2 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Use.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @Use.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Use.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @Use.%T.as_type.loc9_18.1 (%T.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Use(%T.loc9_9.2: %I.type) { // CHECK:STDOUT: %T.loc9_9.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_9.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] -// CHECK:STDOUT: %.loc9_24.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc9_24.2 (constants.%.ff7)] +// CHECK:STDOUT: %T.as_type.loc9_18.1: type = facet_access_type %T.loc9_9.1 [symbolic = %T.as_type.loc9_18.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_18.1 [symbolic = %pattern_type (constants.%pattern_type.f4e)] +// CHECK:STDOUT: %.loc9_24.2: Core.Form = init_form %T.as_type.loc9_18.1 [symbolic = %.loc9_24.2 (constants.%.ae9)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_18.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.WithSelf.Copy.type: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T.loc9_9.1) [symbolic = %I.WithSelf.Copy.type (constants.%I.WithSelf.Copy.type.035)] // CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %I.WithSelf.Copy.type, %T.loc9_9.1 [symbolic = %.loc10 (constants.%.fa6)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc9_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc10_11.2: @Use.%.loc10 (%.fa6) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_11.2: = specific_impl_function %impl.elem0.loc10_11.2, @I.WithSelf.Copy(%T.loc9_9.1) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @Use.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc9_18.1 (%T.as_type)) -> out %return.param: @Use.%T.as_type.loc9_18.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc9_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_11.1: @Use.%.loc10 (%.fa6) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_11.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_11.1 // CHECK:STDOUT: %specific_impl_fn.loc10_11.1: = specific_impl_function %impl.elem0.loc10_11.1, @I.WithSelf.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_17: = bound_method %x.ref, %specific_impl_fn.loc10_11.1 -// CHECK:STDOUT: %.loc9_24.1: ref @Use.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %I.WithSelf.Copy.call: init @Use.%T.binding.as_type (%T.binding.as_type) to %.loc9_24.1 = call %bound_method.loc10_17(%x.ref) +// CHECK:STDOUT: %.loc9_24.1: ref @Use.%T.as_type.loc9_18.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %I.WithSelf.Copy.call: init @Use.%T.as_type.loc9_18.1 (%T.as_type) to %.loc9_24.1 = call %bound_method.loc10_17(%x.ref) // CHECK:STDOUT: return %I.WithSelf.Copy.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc9_9.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 -// CHECK:STDOUT: %.loc9_24.2 => constants.%.ff7 +// CHECK:STDOUT: %T.as_type.loc9_18.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e +// CHECK:STDOUT: %.loc9_24.2 => constants.%.ae9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_selfless_method.carbon @@ -533,8 +533,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Hello.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.Hello.type.3eb: type = fn_type @I.WithSelf.Hello, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.8de: type = fn_type_with_self_type %I.WithSelf.Hello.type.3eb, %T [symbolic] @@ -553,9 +553,9 @@ fn F2(U:! Z) { // CHECK:STDOUT: %impl.elem0.loc10_4.2: @Use.%.loc10 (%.8de) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.2: = specific_impl_function %impl.elem0.loc10_4.2, @I.WithSelf.Hello(%T.loc8_9.1) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Use.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Use.%T.as_type.loc8_18.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Use.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Use.%T.as_type.loc8_18.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Hello.ref: %I.assoc_type = name_ref Hello, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Use.%.loc10 (%.8de) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @I.WithSelf.Hello(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn)] @@ -566,8 +566,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { // CHECK:STDOUT: %T.loc8_9.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %T.as_type.loc8_18.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_assoc_method_indirect.carbon @@ -577,9 +577,9 @@ fn F2(U:! Z) { // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.Copy.decl [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.ff7: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.ae9: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.Copy.type.035: type = fn_type @I.WithSelf.Copy, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.fa6: type = fn_type_with_self_type %I.WithSelf.Copy.type.035, %T [symbolic] @@ -598,28 +598,28 @@ fn F2(U:! Z) { // CHECK:STDOUT: %impl.elem0.loc10_14.2: @UseIndirect.%.loc10_14.2 (%.fa6) = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc10_14.2: = specific_impl_function %impl.elem0.loc10_14.2, @I.WithSelf.Copy(%T.loc8_17.1) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @UseIndirect.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type)) -> out %return.param: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @UseIndirect.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %T.ref.loc10: %I.type = name_ref T, %T.loc8_17.2 [symbolic = %T.loc8_17.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc10: type = facet_access_type %T.ref.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc10_14.1: type = converted %T.ref.loc10, %T.as_type.loc10 [symbolic = %T.as_type.loc8_26.1 (constants.%T.as_type)] // CHECK:STDOUT: %Copy.ref: %I.assoc_type = name_ref Copy, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_14.1: @UseIndirect.%.loc10_14.2 (%.fa6) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_14.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc10_11: = bound_method %x.ref, %impl.elem0.loc10_14.1 // CHECK:STDOUT: %specific_impl_fn.loc10_14.1: = specific_impl_function %impl.elem0.loc10_14.1, @I.WithSelf.Copy(constants.%T) [symbolic = %specific_impl_fn.loc10_14.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc10_21: = bound_method %x.ref, %specific_impl_fn.loc10_14.1 // CHECK:STDOUT: -// CHECK:STDOUT: %I.WithSelf.Copy.call: init @UseIndirect.%T.binding.as_type (%T.binding.as_type) to %.loc8_32.1 = call %bound_method.loc10_21(%x.ref) +// CHECK:STDOUT: %I.WithSelf.Copy.call: init @UseIndirect.%T.as_type.loc8_26.1 (%T.as_type) to %.loc8_32.1 = call %bound_method.loc10_21(%x.ref) // CHECK:STDOUT: return %I.WithSelf.Copy.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseIndirect(constants.%T) { // CHECK:STDOUT: %T.loc8_17.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 -// CHECK:STDOUT: %.loc8_32.2 => constants.%.ff7 +// CHECK:STDOUT: %T.as_type.loc8_26.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e +// CHECK:STDOUT: %.loc8_32.2 => constants.%.ae9 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_constant_in_self_facet.carbon @@ -631,16 +631,16 @@ fn F2(U:! Z) { // CHECK:STDOUT: %assoc0: %A.assoc_type = assoc_entity element0, @A.WithSelf.%X [concrete] // CHECK:STDOUT: %.Self.091: %A.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.091 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.091 [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness.6a5: = lookup_impl_witness %.Self.091, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness.6a5, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %A_where.type: type = facet_type <@A where %impl.elem0 = %empty_tuple.type> [concrete] // CHECK:STDOUT: %pattern_type.dc8: type = pattern_type %A_where.type [concrete] // CHECK:STDOUT: %AA: %A_where.type = symbolic_binding AA, 0 [symbolic] -// CHECK:STDOUT: %AA.binding.as_type: type = symbolic_binding_type AA, 0, %AA [symbolic] +// CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.6c3: = lookup_impl_witness %AA, @A [symbolic] -// CHECK:STDOUT: %A.facet: %A.type = facet_value %AA.binding.as_type, (%A.lookup_impl_witness.6c3) [symbolic] +// CHECK:STDOUT: %A.facet: %A.type = facet_value %AA.as_type, (%A.lookup_impl_witness.6c3) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -655,8 +655,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc6_33 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AA.ref: %A_where.type = name_ref AA, %AA.loc6_8.2 [symbolic = %AA.loc6_8.1 (constants.%AA)] -// CHECK:STDOUT: %AA.as_type: type = facet_access_type %AA.ref [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] -// CHECK:STDOUT: %.loc6_33.1: type = converted %AA.ref, %AA.as_type [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] +// CHECK:STDOUT: %AA.as_type.loc6_33.2: type = facet_access_type %AA.ref [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] +// CHECK:STDOUT: %.loc6_33.1: type = converted %AA.ref, %AA.as_type.loc6_33.2 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] // CHECK:STDOUT: %X.ref.loc6_33: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_33: type = impl_witness_access constants.%A.lookup_impl_witness.6c3, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc6_33.2: Core.Form = init_form %impl.elem0.loc6_33 [concrete = constants.%.262] @@ -665,8 +665,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.091] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc6_19: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_19: type = impl_witness_access constants.%A.lookup_impl_witness.6a5, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -701,7 +701,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%AA.loc6_8.2: %A_where.type) { // CHECK:STDOUT: %AA.loc6_8.1: %A_where.type = symbolic_binding AA, 0 [symbolic = %AA.loc6_8.1 (constants.%AA)] -// CHECK:STDOUT: %AA.binding.as_type: type = symbolic_binding_type AA, 0, %AA.loc6_8.1 [symbolic = %AA.binding.as_type (constants.%AA.binding.as_type)] +// CHECK:STDOUT: %AA.as_type.loc6_33.1: type = facet_access_type %AA.loc6_8.1 [symbolic = %AA.as_type.loc6_33.1 (constants.%AA.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -732,7 +732,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AA) { // CHECK:STDOUT: %AA.loc6_8.1 => constants.%AA -// CHECK:STDOUT: %AA.binding.as_type => constants.%AA.binding.as_type +// CHECK:STDOUT: %AA.as_type.loc6_33.1 => constants.%AA.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- access_constant_in_self_facet_with_multiple_interfaces.carbon @@ -755,7 +755,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound: = bound_method %A.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.9bb: type = facet_type <@A & @B> [concrete] // CHECK:STDOUT: %.Self.e7e: %facet_type.9bb = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.e7e [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.e7e [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness.6b3: = lookup_impl_witness %.Self.e7e, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0.eb8: type = impl_witness_access %A.lookup_impl_witness.6b3, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -766,7 +766,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: %facet_type.82c: type = facet_type <@A & @B where %impl.elem0.eb8 = %empty_tuple.type and %impl.elem0.11d = %empty_struct_type> [concrete] // CHECK:STDOUT: %pattern_type.77e: type = pattern_type %facet_type.82c [concrete] // CHECK:STDOUT: %AB: %facet_type.82c = symbolic_binding AB, 0 [symbolic] -// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB [symbolic] +// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.1b9: = lookup_impl_witness %AB, @A [symbolic] // CHECK:STDOUT: %B.lookup_impl_witness.97b: = lookup_impl_witness %AB, @B [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] @@ -791,8 +791,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc14_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc14_8.2 [symbolic = %AB.loc14_8.1 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] -// CHECK:STDOUT: %.loc14_49.1: type = converted %AB.ref, %AB.as_type [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] +// CHECK:STDOUT: %AB.as_type.loc14_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %.loc14_49.1: type = converted %AB.ref, %AB.as_type.loc14_49.2 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %X.ref.loc14_49: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.df7] // CHECK:STDOUT: %impl.elem0.loc14_49: type = impl_witness_access constants.%A.lookup_impl_witness.1b9, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc14_49.2: Core.Form = init_form %impl.elem0.loc14_49 [concrete = constants.%.262] @@ -807,15 +807,15 @@ fn F2(U:! Z) { // CHECK:STDOUT: %.loc14_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc14_13.1 [concrete = constants.%facet_type.9bb] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc14_23: %facet_type.9bb = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7e] -// CHECK:STDOUT: %.Self.as_type.loc14_23: type = facet_access_type %.Self.ref.loc14_23 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc14_23: type = converted %.Self.ref.loc14_23, %.Self.as_type.loc14_23 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc14_23: type = facet_access_type %.Self.ref.loc14_23 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc14_23: type = converted %.Self.ref.loc14_23, %.Self.as_type.loc14_23 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc14_23: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.df7] // CHECK:STDOUT: %impl.elem0.loc14_23: type = impl_witness_access constants.%A.lookup_impl_witness.6b3, element0 [symbolic_self = constants.%impl.elem0.eb8] // CHECK:STDOUT: %.loc14_29.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc14_29.2: type = converted %.loc14_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.Self.ref.loc14_35: %facet_type.9bb = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7e] -// CHECK:STDOUT: %.Self.as_type.loc14_35: type = facet_access_type %.Self.ref.loc14_35 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc14_35: type = converted %.Self.ref.loc14_35, %.Self.as_type.loc14_35 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc14_35: type = facet_access_type %.Self.ref.loc14_35 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc14_35: type = converted %.Self.ref.loc14_35, %.Self.as_type.loc14_35 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.6fa] // CHECK:STDOUT: %impl.elem0.loc14_35: type = impl_witness_access constants.%B.lookup_impl_witness.d4f, element0 [symbolic_self = constants.%impl.elem0.11d] // CHECK:STDOUT: %.loc14_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -836,8 +836,8 @@ fn F2(U:! Z) { // CHECK:STDOUT: %return.patt: %pattern_type.a96 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_49 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %AB.ref: %facet_type.82c = name_ref AB, %AB.loc18_8.2 [symbolic = %AB.loc18_8.1 (constants.%AB)] -// CHECK:STDOUT: %AB.as_type: type = facet_access_type %AB.ref [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] -// CHECK:STDOUT: %.loc18_49.1: type = converted %AB.ref, %AB.as_type [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] +// CHECK:STDOUT: %AB.as_type.loc18_49.2: type = facet_access_type %AB.ref [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] +// CHECK:STDOUT: %.loc18_49.1: type = converted %AB.ref, %AB.as_type.loc18_49.2 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: %Y.ref.loc18_49: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.6fa] // CHECK:STDOUT: %impl.elem0.loc18_49: type = impl_witness_access constants.%B.lookup_impl_witness.97b, element0 [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.loc18_49.2: Core.Form = init_form %impl.elem0.loc18_49 [concrete = constants.%.469] @@ -852,15 +852,15 @@ fn F2(U:! Z) { // CHECK:STDOUT: %.loc18_13.2: type = converted %type.as.BitAndWith.impl.Op.call, %.loc18_13.1 [concrete = constants.%facet_type.9bb] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc18_23: %facet_type.9bb = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7e] -// CHECK:STDOUT: %.Self.as_type.loc18_23: type = facet_access_type %.Self.ref.loc18_23 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc18_23: type = converted %.Self.ref.loc18_23, %.Self.as_type.loc18_23 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc18_23: type = facet_access_type %.Self.ref.loc18_23 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc18_23: type = converted %.Self.ref.loc18_23, %.Self.as_type.loc18_23 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref: %A.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.df7] // CHECK:STDOUT: %impl.elem0.loc18_23: type = impl_witness_access constants.%A.lookup_impl_witness.6b3, element0 [symbolic_self = constants.%impl.elem0.eb8] // CHECK:STDOUT: %.loc18_29.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_29.2: type = converted %.loc18_29.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.Self.ref.loc18_35: %facet_type.9bb = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.e7e] -// CHECK:STDOUT: %.Self.as_type.loc18_35: type = facet_access_type %.Self.ref.loc18_35 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc18_35: type = converted %.Self.ref.loc18_35, %.Self.as_type.loc18_35 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc18_35: type = facet_access_type %.Self.ref.loc18_35 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc18_35: type = converted %.Self.ref.loc18_35, %.Self.as_type.loc18_35 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc18_35: %B.assoc_type = name_ref Y, @Y.%assoc0 [concrete = constants.%assoc0.6fa] // CHECK:STDOUT: %impl.elem0.loc18_35: type = impl_witness_access constants.%B.lookup_impl_witness.d4f, element0 [symbolic_self = constants.%impl.elem0.11d] // CHECK:STDOUT: %.loc18_41.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -879,7 +879,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%AB.loc14_8.2: %facet_type.82c) { // CHECK:STDOUT: %AB.loc14_8.1: %facet_type.82c = symbolic_binding AB, 0 [symbolic = %AB.loc14_8.1 (constants.%AB)] -// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB.loc14_8.1 [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] +// CHECK:STDOUT: %AB.as_type.loc14_49.1: type = facet_access_type %AB.loc14_8.1 [symbolic = %AB.as_type.loc14_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -894,7 +894,7 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%AB.loc18_8.2: %facet_type.82c) { // CHECK:STDOUT: %AB.loc18_8.1: %facet_type.82c = symbolic_binding AB, 0 [symbolic = %AB.loc18_8.1 (constants.%AB)] -// CHECK:STDOUT: %AB.binding.as_type: type = symbolic_binding_type AB, 0, %AB.loc18_8.1 [symbolic = %AB.binding.as_type (constants.%AB.binding.as_type)] +// CHECK:STDOUT: %AB.as_type.loc18_49.1: type = facet_access_type %AB.loc18_8.1 [symbolic = %AB.as_type.loc18_49.1 (constants.%AB.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -909,11 +909,11 @@ fn F2(U:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%AB) { // CHECK:STDOUT: %AB.loc14_8.1 => constants.%AB -// CHECK:STDOUT: %AB.binding.as_type => constants.%AB.binding.as_type +// CHECK:STDOUT: %AB.as_type.loc14_49.1 => constants.%AB.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%AB) { // CHECK:STDOUT: %AB.loc18_8.1 => constants.%AB -// CHECK:STDOUT: %AB.binding.as_type => constants.%AB.binding.as_type +// CHECK:STDOUT: %AB.as_type.loc18_49.1 => constants.%AB.as_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon index cb3d0b60123d..8ebab22bfc78 100644 --- a/toolchain/check/testdata/facet/call_combined_impl_witness.carbon +++ b/toolchain/check/testdata/facet/call_combined_impl_witness.carbon @@ -97,29 +97,29 @@ fn F() { // CHECK:STDOUT: %facet_type.dc7: type = facet_type <@Empty & @A & @B> [concrete] // CHECK:STDOUT: %pattern_type.773: type = pattern_type %facet_type.dc7 [concrete] // CHECK:STDOUT: %T: %facet_type.dc7 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.2ee: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.ccc: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %A.WithSelf.AA.type.ce6: type = fn_type @A.WithSelf.AA, @A.WithSelf(%T) [symbolic] // CHECK:STDOUT: %A.WithSelf.AA.020: %A.WithSelf.AA.type.ce6 = struct_value () [symbolic] // CHECK:STDOUT: %B.WithSelf.BB.type.374: type = fn_type @B.WithSelf.BB, @B.WithSelf(%T) [symbolic] // CHECK:STDOUT: %B.WithSelf.BB.1c2: %B.WithSelf.BB.type.374 = struct_value () [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T, @A [symbolic] -// CHECK:STDOUT: %A.facet.095: %A.type = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.type.7b2: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.095) [symbolic] -// CHECK:STDOUT: %A.WithSelf.AA.11e: %A.WithSelf.AA.type.7b2 = struct_value () [symbolic] -// CHECK:STDOUT: %.84b: type = fn_type_with_self_type %A.WithSelf.AA.type.7b2, %A.facet.095 [symbolic] -// CHECK:STDOUT: %impl.elem0.26a: %.84b = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.567: = specific_impl_function %impl.elem0.26a, @A.WithSelf.AA(%A.facet.095) [symbolic] +// CHECK:STDOUT: %A.facet.173: %A.type = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.type.bd7: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.173) [symbolic] +// CHECK:STDOUT: %A.WithSelf.AA.b8b: %A.WithSelf.AA.type.bd7 = struct_value () [symbolic] +// CHECK:STDOUT: %.e97: type = fn_type_with_self_type %A.WithSelf.AA.type.bd7, %A.facet.173 [symbolic] +// CHECK:STDOUT: %impl.elem0.efc: %.e97 = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.a43: = specific_impl_function %impl.elem0.efc, @A.WithSelf.AA(%A.facet.173) [symbolic] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T, @B [symbolic] -// CHECK:STDOUT: %B.facet.0e7: %B.type = facet_value %T.binding.as_type, (%B.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.type.5a2: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.0e7) [symbolic] -// CHECK:STDOUT: %B.WithSelf.BB.b76: %B.WithSelf.BB.type.5a2 = struct_value () [symbolic] -// CHECK:STDOUT: %.dfd: type = fn_type_with_self_type %B.WithSelf.BB.type.5a2, %B.facet.0e7 [symbolic] -// CHECK:STDOUT: %impl.elem0.557: %.dfd = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.fc3: = specific_impl_function %impl.elem0.557, @B.WithSelf.BB(%B.facet.0e7) [symbolic] +// CHECK:STDOUT: %B.facet.b96: %B.type = facet_value %T.as_type, (%B.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.type.045: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.b96) [symbolic] +// CHECK:STDOUT: %B.WithSelf.BB.d2b: %B.WithSelf.BB.type.045 = struct_value () [symbolic] +// CHECK:STDOUT: %.335: type = fn_type_with_self_type %B.WithSelf.BB.type.045, %B.facet.b96 [symbolic] +// CHECK:STDOUT: %impl.elem0.bd0: %.335 = impl_witness_access %B.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.207: = specific_impl_function %impl.elem0.bd0, @B.WithSelf.BB(%B.facet.b96) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -178,8 +178,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %T.patt: %pattern_type.773 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.2ee) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.2ee) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @G.%pattern_type (%pattern_type.ccc) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @G.%pattern_type (%pattern_type.ccc) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc33_20.1: type = splice_block %.loc33_20.3 [concrete = constants.%facet_type.dc7] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -198,13 +198,13 @@ fn F() { // CHECK:STDOUT: %.loc33_20.3: type = converted %type.as.BitAndWith.impl.Op.call.loc33_20, %.loc33_20.2 [concrete = constants.%facet_type.dc7] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc33_7.2: %facet_type.dc7 = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @G.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc33_28.1: type = splice_block %.loc33_28.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @G.%T.as_type.loc33_28.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc33_28.1: type = splice_block %.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc33: %facet_type.dc7 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc33: type = facet_access_type %T.ref.loc33 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc33_28.2: type = converted %T.ref.loc33, %T.as_type.loc33 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc33_28.2: type = facet_access_type %T.ref.loc33 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc33_28.2: type = converted %T.ref.loc33, %T.as_type.loc33_28.2 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @G.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @G.%T.as_type.loc33_28.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -312,67 +312,67 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc33_7.2: %facet_type.dc7) { // CHECK:STDOUT: %T.loc33_7.1: %facet_type.dc7 = symbolic_binding T, 0 [symbolic = %T.loc33_7.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc33_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.2ee)] +// CHECK:STDOUT: %T.as_type.loc33_28.1: type = facet_access_type %T.loc33_7.1 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc33_28.1 [symbolic = %pattern_type (constants.%pattern_type.ccc)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc33_28.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc33_7.1, @A [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.095)] -// CHECK:STDOUT: %A.WithSelf.AA.type: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.loc34) [symbolic = %A.WithSelf.AA.type (constants.%A.WithSelf.AA.type.7b2)] -// CHECK:STDOUT: %.loc34: type = fn_type_with_self_type %A.WithSelf.AA.type, %A.facet.loc34 [symbolic = %.loc34 (constants.%.84b)] -// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34 (%.84b) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.26a)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.WithSelf.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.567)] +// CHECK:STDOUT: %A.facet.loc34: %A.type = facet_value %T.as_type.loc33_28.1, (%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.173)] +// CHECK:STDOUT: %A.WithSelf.AA.type: type = fn_type @A.WithSelf.AA, @A.WithSelf(%A.facet.loc34) [symbolic = %A.WithSelf.AA.type (constants.%A.WithSelf.AA.type.bd7)] +// CHECK:STDOUT: %.loc34: type = fn_type_with_self_type %A.WithSelf.AA.type, %A.facet.loc34 [symbolic = %.loc34 (constants.%.e97)] +// CHECK:STDOUT: %impl.elem0.loc34_4.2: @G.%.loc34 (%.e97) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.efc)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.2: = specific_impl_function %impl.elem0.loc34_4.2, @A.WithSelf.AA(%A.facet.loc34) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.a43)] // CHECK:STDOUT: %B.lookup_impl_witness: = lookup_impl_witness %T.loc33_7.1, @B [symbolic = %B.lookup_impl_witness (constants.%B.lookup_impl_witness)] -// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.binding.as_type, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.0e7)] -// CHECK:STDOUT: %B.WithSelf.BB.type: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.loc35) [symbolic = %B.WithSelf.BB.type (constants.%B.WithSelf.BB.type.5a2)] -// CHECK:STDOUT: %.loc35: type = fn_type_with_self_type %B.WithSelf.BB.type, %B.facet.loc35 [symbolic = %.loc35 (constants.%.dfd)] -// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35 (%.dfd) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.557)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.WithSelf.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.fc3)] +// CHECK:STDOUT: %B.facet.loc35: %B.type = facet_value %T.as_type.loc33_28.1, (%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.b96)] +// CHECK:STDOUT: %B.WithSelf.BB.type: type = fn_type @B.WithSelf.BB, @B.WithSelf(%B.facet.loc35) [symbolic = %B.WithSelf.BB.type (constants.%B.WithSelf.BB.type.045)] +// CHECK:STDOUT: %.loc35: type = fn_type_with_self_type %B.WithSelf.BB.type, %B.facet.loc35 [symbolic = %.loc35 (constants.%.335)] +// CHECK:STDOUT: %impl.elem0.loc35_4.2: @G.%.loc35 (%.335) = impl_witness_access %B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.bd0)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.2: = specific_impl_function %impl.elem0.loc35_4.2, @B.WithSelf.BB(%B.facet.loc35) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.207)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @G.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @G.%T.as_type.loc33_28.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref.loc34: @G.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc34: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %AA.ref.loc34: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.a62] -// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34 (%.84b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.26a)] -// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.WithSelf.AA(constants.%A.facet.095) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.567)] +// CHECK:STDOUT: %impl.elem0.loc34_4.1: @G.%.loc34 (%.e97) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.efc)] +// CHECK:STDOUT: %specific_impl_fn.loc34_4.1: = specific_impl_function %impl.elem0.loc34_4.1, @A.WithSelf.AA(constants.%A.facet.173) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.a43)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc34: init %empty_tuple.type = call %specific_impl_fn.loc34_4.1() -// CHECK:STDOUT: %t.ref.loc35: @G.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref.loc35: @G.%T.as_type.loc33_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %BB.ref.loc35: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.00a] -// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35 (%.dfd) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.557)] -// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.WithSelf.BB(constants.%B.facet.0e7) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.fc3)] +// CHECK:STDOUT: %impl.elem0.loc35_4.1: @G.%.loc35 (%.335) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.bd0)] +// CHECK:STDOUT: %specific_impl_fn.loc35_4.1: = specific_impl_function %impl.elem0.loc35_4.1, @B.WithSelf.BB(constants.%B.facet.b96) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.207)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc35: init %empty_tuple.type = call %specific_impl_fn.loc35_4.1() // CHECK:STDOUT: %T.ref.loc37: %facet_type.dc7 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc37: type = facet_access_type %T.ref.loc37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc37: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc37: type = facet_access_type %T.ref.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc37: type = converted %T.ref.loc37, %T.as_type.loc37 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %AA.ref.loc37: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.a62] -// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34 (%.84b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.26a)] -// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.WithSelf.AA(constants.%A.facet.095) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.567)] +// CHECK:STDOUT: %impl.elem0.loc37: @G.%.loc34 (%.e97) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.efc)] +// CHECK:STDOUT: %specific_impl_fn.loc37: = specific_impl_function %impl.elem0.loc37, @A.WithSelf.AA(constants.%A.facet.173) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.a43)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc37: init %empty_tuple.type = call %specific_impl_fn.loc37() // CHECK:STDOUT: %T.ref.loc38: %facet_type.dc7 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc38: type = facet_access_type %T.ref.loc38 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc38: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc38: type = facet_access_type %T.ref.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc38: type = converted %T.ref.loc38, %T.as_type.loc38 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %BB.ref.loc38: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.00a] -// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35 (%.dfd) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.557)] -// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.WithSelf.BB(constants.%B.facet.0e7) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.fc3)] +// CHECK:STDOUT: %impl.elem0.loc38: @G.%.loc35 (%.335) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.bd0)] +// CHECK:STDOUT: %specific_impl_fn.loc38: = specific_impl_function %impl.elem0.loc38, @B.WithSelf.BB(constants.%B.facet.b96) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.207)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc38: init %empty_tuple.type = call %specific_impl_fn.loc38() // CHECK:STDOUT: %T.ref.loc40: %facet_type.dc7 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %A.ref.loc40: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: %AA.ref.loc40: %A.assoc_type = name_ref AA, @A.WithSelf.%assoc0 [concrete = constants.%assoc0.a62] -// CHECK:STDOUT: %T.as_type.loc40: type = facet_access_type %T.ref.loc40 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value %T.as_type.loc40, (constants.%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.095)] -// CHECK:STDOUT: %.loc40: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.095)] -// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34 (%.84b) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.26a)] -// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.WithSelf.AA(constants.%A.facet.095) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.567)] +// CHECK:STDOUT: %T.as_type.loc40: type = facet_access_type %T.ref.loc40 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %A.facet.loc40: %A.type = facet_value %T.as_type.loc40, (constants.%A.lookup_impl_witness) [symbolic = %A.facet.loc34 (constants.%A.facet.173)] +// CHECK:STDOUT: %.loc40: %A.type = converted %T.ref.loc40, %A.facet.loc40 [symbolic = %A.facet.loc34 (constants.%A.facet.173)] +// CHECK:STDOUT: %impl.elem0.loc40: @G.%.loc34 (%.e97) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0.efc)] +// CHECK:STDOUT: %specific_impl_fn.loc40: = specific_impl_function %impl.elem0.loc40, @A.WithSelf.AA(constants.%A.facet.173) [symbolic = %specific_impl_fn.loc34_4.2 (constants.%specific_impl_fn.a43)] // CHECK:STDOUT: %A.WithSelf.AA.call.loc40: init %empty_tuple.type = call %specific_impl_fn.loc40() // CHECK:STDOUT: %T.ref.loc41: %facet_type.dc7 = name_ref T, %T.loc33_7.2 [symbolic = %T.loc33_7.1 (constants.%T)] // CHECK:STDOUT: %B.ref.loc41: type = name_ref B, file.%B.decl [concrete = constants.%B.type] // CHECK:STDOUT: %BB.ref.loc41: %B.assoc_type = name_ref BB, @B.WithSelf.%assoc0 [concrete = constants.%assoc0.00a] -// CHECK:STDOUT: %T.as_type.loc41: type = facet_access_type %T.ref.loc41 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %B.facet.loc41: %B.type = facet_value %T.as_type.loc41, (constants.%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.0e7)] -// CHECK:STDOUT: %.loc41: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.0e7)] -// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35 (%.dfd) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.557)] -// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.WithSelf.BB(constants.%B.facet.0e7) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.fc3)] +// CHECK:STDOUT: %T.as_type.loc41: type = facet_access_type %T.ref.loc41 [symbolic = %T.as_type.loc33_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %B.facet.loc41: %B.type = facet_value %T.as_type.loc41, (constants.%B.lookup_impl_witness) [symbolic = %B.facet.loc35 (constants.%B.facet.b96)] +// CHECK:STDOUT: %.loc41: %B.type = converted %T.ref.loc41, %B.facet.loc41 [symbolic = %B.facet.loc35 (constants.%B.facet.b96)] +// CHECK:STDOUT: %impl.elem0.loc41: @G.%.loc35 (%.335) = impl_witness_access constants.%B.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc35_4.2 (constants.%impl.elem0.bd0)] +// CHECK:STDOUT: %specific_impl_fn.loc41: = specific_impl_function %impl.elem0.loc41, @B.WithSelf.BB(constants.%B.facet.b96) [symbolic = %specific_impl_fn.loc35_4.2 (constants.%specific_impl_fn.207)] // CHECK:STDOUT: %B.WithSelf.BB.call.loc41: init %empty_tuple.type = call %specific_impl_fn.loc41() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -449,8 +449,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T) { // CHECK:STDOUT: %T.loc33_7.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2ee +// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ccc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Empty.WithSelf(constants.%T) { @@ -471,27 +471,27 @@ fn F() { // CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.1c2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.095) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%A.facet.173) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%A.facet.095 -// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.7b2 -// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.11e +// CHECK:STDOUT: %Self => constants.%A.facet.173 +// CHECK:STDOUT: %A.WithSelf.AA.type => constants.%A.WithSelf.AA.type.bd7 +// CHECK:STDOUT: %A.WithSelf.AA => constants.%A.WithSelf.AA.b8b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.095) {} +// CHECK:STDOUT: specific @A.WithSelf.AA(constants.%A.facet.173) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.0e7) { +// CHECK:STDOUT: specific @B.WithSelf(constants.%B.facet.b96) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%B.facet.0e7 -// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.5a2 -// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.b76 +// CHECK:STDOUT: %Self => constants.%B.facet.b96 +// CHECK:STDOUT: %B.WithSelf.BB.type => constants.%B.WithSelf.BB.type.045 +// CHECK:STDOUT: %B.WithSelf.BB => constants.%B.WithSelf.BB.d2b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.0e7) {} +// CHECK:STDOUT: specific @B.WithSelf.BB(constants.%B.facet.b96) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%facet_value) { // CHECK:STDOUT: %T.loc33_7.1 => constants.%facet_value -// CHECK:STDOUT: %T.binding.as_type => constants.%C +// CHECK:STDOUT: %T.as_type.loc33_28.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon index d725d44bbf60..31db64f9d642 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_facet_value_value.carbon @@ -32,12 +32,12 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.e10: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %T: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.892: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %WalkAnimal.type: type = fn_type @WalkAnimal [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %WalkAnimal: %WalkAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -77,21 +77,21 @@ fn F() { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %WalkAnimal.decl: %WalkAnimal.type = fn_decl @WalkAnimal [concrete = constants.%WalkAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @WalkAnimal.%pattern_type (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @WalkAnimal.%pattern_type (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc17_16.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %a.param: @WalkAnimal.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_37.1: type = splice_block %.loc17_37.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %a.param: @WalkAnimal.%T.as_type.loc17_37.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_37.1: type = splice_block %.loc17_37.2 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_16.2 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc17_37.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc17_37.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc17_37.2: type = converted %T.ref, %T.as_type.loc17_37.2 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @WalkAnimal.%T.binding.as_type (%T.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @WalkAnimal.%T.as_type.loc17_37.1 (%T.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { @@ -130,13 +130,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @WalkAnimal(%T.loc17_16.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_16.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc17_16.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.892)] +// CHECK:STDOUT: %T.as_type.loc17_37.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.f0b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_37.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%a.param: @WalkAnimal.%T.as_type.loc17_37.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -173,8 +173,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) { @@ -183,7 +183,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @WalkAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%Goat +// CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.234 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon index 98964e112607..2b43bec684f0 100644 --- a/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_class_value_to_generic_facet_value_value.carbon @@ -135,12 +135,12 @@ fn B() { // CHECK:STDOUT: %Generic.WithSelf.F.baf95a.2: %Generic.WithSelf.F.type.74390a.2 = struct_value () [symbolic] // CHECK:STDOUT: %Generic.assoc_type.22afda.2: type = assoc_entity_type @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %assoc0.e0dc00.2: %Generic.assoc_type.22afda.2 = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] -// CHECK:STDOUT: %pattern_type.46f: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.144: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %CallGenericMethod.type: type = fn_type @CallGenericMethod [concrete] // CHECK:STDOUT: %CallGenericMethod: %CallGenericMethod.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.186: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.271: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.7da: = require_complete_type %Generic.type.03dff7.2 [symbolic] // CHECK:STDOUT: %Generic.WithSelf.F.type.56e: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] @@ -210,8 +210,8 @@ fn B() { // CHECK:STDOUT: %CallGenericMethod.decl: %CallGenericMethod.type = fn_decl @CallGenericMethod [concrete = constants.%CallGenericMethod] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: @CallGenericMethod.%pattern_type.loc15_33 (%pattern_type.c49) = symbolic_binding_pattern U, 1 [concrete] -// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.46f) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.46f) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.144) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @CallGenericMethod.%pattern_type.loc15_56 (%pattern_type.144) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: %s.param_patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %s.patt: @CallGenericMethod.%pattern_type.loc15_69 (%pattern_type.51d) = at_binding_pattern s, %s.param_patt [concrete] // CHECK:STDOUT: } { @@ -227,13 +227,13 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.2: type = facet_type <@Generic, @Generic(constants.%T)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.03dff7.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc15_33.2: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.03dff7.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] -// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc15_58.1: type = splice_block %.loc15_58.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %a.param: @CallGenericMethod.%U.as_type.loc15_58.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc15_58.1: type = splice_block %.loc15_58.2 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref.loc15: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.03dff7.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc15: type = facet_access_type %U.ref.loc15 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc15_58.2: type = converted %U.ref.loc15, %U.as_type.loc15 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc15_58.2: type = facet_access_type %U.ref.loc15 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc15_58.2: type = converted %U.ref.loc15, %U.as_type.loc15_58.2 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @CallGenericMethod.%U.as_type.loc15_58.1 (%U.as_type) = value_binding a, %a.param // CHECK:STDOUT: %s.param: @CallGenericMethod.%T.loc15_23.1 (%T) = value_param call_param1 // CHECK:STDOUT: %T.ref.loc15_71: type = name_ref T, %T.loc15_23.2 [symbolic = %T.loc15_23.1 (constants.%T)] // CHECK:STDOUT: %s: @CallGenericMethod.%T.loc15_23.1 (%T) = value_binding s, %s.param @@ -305,12 +305,12 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1: type = facet_type <@Generic, @Generic(%T.loc15_23.1)> [symbolic = %Generic.type.loc15_45.1 (constants.%Generic.type.03dff7.2)] // CHECK:STDOUT: %U.loc15_33.1: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.03dff7.2) = symbolic_binding U, 1 [symbolic = %U.loc15_33.1 (constants.%U)] // CHECK:STDOUT: %pattern_type.loc15_33: type = pattern_type %Generic.type.loc15_45.1 [symbolic = %pattern_type.loc15_33 (constants.%pattern_type.c49)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc15_33.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_56: type = pattern_type %U.binding.as_type [symbolic = %pattern_type.loc15_56 (constants.%pattern_type.46f)] +// CHECK:STDOUT: %U.as_type.loc15_58.1: type = facet_access_type %U.loc15_33.1 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type.loc15_56: type = pattern_type %U.as_type.loc15_58.1 [symbolic = %pattern_type.loc15_56 (constants.%pattern_type.144)] // CHECK:STDOUT: %pattern_type.loc15_69: type = pattern_type %T.loc15_23.1 [symbolic = %pattern_type.loc15_69 (constants.%pattern_type.51d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_56: = require_complete_type %U.binding.as_type [symbolic = %require_complete.loc15_56 (constants.%require_complete.186)] +// CHECK:STDOUT: %require_complete.loc15_56: = require_complete_type %U.as_type.loc15_58.1 [symbolic = %require_complete.loc15_56 (constants.%require_complete.271)] // CHECK:STDOUT: %require_complete.loc15_69: = require_complete_type %T.loc15_23.1 [symbolic = %require_complete.loc15_69 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc16: = require_complete_type %Generic.type.loc15_45.1 [symbolic = %require_complete.loc16 (constants.%require_complete.7da)] // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc15_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.22afda.2)] @@ -321,11 +321,11 @@ fn B() { // CHECK:STDOUT: %impl.elem0.loc16_4.2: @CallGenericMethod.%.loc16_4.3 (%.ab3) = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Generic.WithSelf.F(%T.loc15_23.1, %U.loc15_33.1) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.binding.as_type (%U.binding.as_type), %s.param: @CallGenericMethod.%T.loc15_23.1 (%T)) { +// CHECK:STDOUT: fn(%a.param: @CallGenericMethod.%U.as_type.loc15_58.1 (%U.as_type), %s.param: @CallGenericMethod.%T.loc15_23.1 (%T)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %U.ref.loc16: @CallGenericMethod.%Generic.type.loc15_45.1 (%Generic.type.03dff7.2) = name_ref U, %U.loc15_33.2 [symbolic = %U.loc15_33.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc16_4.1: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc16: type = facet_access_type %U.ref.loc16 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc16_4.1: type = converted %U.ref.loc16, %U.as_type.loc16 [symbolic = %U.as_type.loc15_58.1 (constants.%U.as_type)] // CHECK:STDOUT: %.loc16_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.22afda.2) = specific_constant @Generic.WithSelf.%assoc0.loc5_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.e0dc00.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.22afda.2) = name_ref F, %.loc16_4.2 [symbolic = %assoc0 (constants.%assoc0.e0dc00.2)] // CHECK:STDOUT: %impl.elem0.loc16_4.1: @CallGenericMethod.%.loc16_4.3 (%.ab3) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0)] @@ -437,8 +437,8 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.03dff7.2 // CHECK:STDOUT: %U.loc15_33.1 => constants.%U // CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.c49 -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.46f +// CHECK:STDOUT: %U.as_type.loc15_58.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.144 // CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: @@ -460,7 +460,7 @@ fn B() { // CHECK:STDOUT: %Generic.type.loc15_45.1 => constants.%Generic.type.498 // CHECK:STDOUT: %U.loc15_33.1 => constants.%Generic.facet // CHECK:STDOUT: %pattern_type.loc15_33 => constants.%pattern_type.cba -// CHECK:STDOUT: %U.binding.as_type => constants.%ImplsGeneric +// CHECK:STDOUT: %U.as_type.loc15_58.1 => constants.%ImplsGeneric // CHECK:STDOUT: %pattern_type.loc15_56 => constants.%pattern_type.4da // CHECK:STDOUT: %pattern_type.loc15_69 => constants.%pattern_type.27a // CHECK:STDOUT: @@ -505,11 +505,11 @@ fn B() { // CHECK:STDOUT: %pattern_type.eee: type = pattern_type %I.type.5f7 [concrete] // CHECK:STDOUT: %T.bc3: %I.type.5f7 = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Self.2a6: %I.type.5f7 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.bc3 [symbolic] -// CHECK:STDOUT: %pattern_type.826: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.bc3 [symbolic] +// CHECK:STDOUT: %pattern_type.c25: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d69: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.7d6: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -576,8 +576,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.eee = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.826) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.826) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.c25) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.c25) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.5f7] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -589,13 +589,13 @@ fn B() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_tuple.type)> [concrete = constants.%I.type.5f7] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_7.2: %I.type.5f7 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.bc3)] -// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %I.type.5f7 = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.bc3)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -647,13 +647,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.5f7) { // CHECK:STDOUT: %T.loc9_7.1: %I.type.5f7 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.bc3)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.826)] +// CHECK:STDOUT: %T.as_type.loc9_31.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.c25)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.d69)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.7d6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_31.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -729,8 +729,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.bc3) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.bc3 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.826 +// CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C.as.I.impl(constants.%empty_struct_type) { @@ -744,7 +744,7 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%I.facet.0e1) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%I.facet.0e1 -// CHECK:STDOUT: %T.binding.as_type => constants.%C +// CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -779,11 +779,11 @@ fn B() { // CHECK:STDOUT: %pattern_type.24a: type = pattern_type %I.type.7b9 [concrete] // CHECK:STDOUT: %T.274: %I.type.7b9 = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Self.c70: %I.type.7b9 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.274 [symbolic] -// CHECK:STDOUT: %pattern_type.ced: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.274 [symbolic] +// CHECK:STDOUT: %pattern_type.612: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.b50: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.03d: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] @@ -838,8 +838,8 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.24a = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.ced) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.ced) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.612) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.612) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_18.1: type = splice_block %I.type [concrete = constants.%I.type.7b9] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -851,13 +851,13 @@ fn B() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%empty_struct_type, constants.%empty_struct_type)> [concrete = constants.%I.type.7b9] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_7.2: %I.type.7b9 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.274)] -// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_31.1: type = splice_block %.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %I.type.7b9 = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.274)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_31.2: type = converted %T.ref, %T.as_type.loc9_31.2 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_31.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -909,13 +909,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type.7b9) { // CHECK:STDOUT: %T.loc9_7.1: %I.type.7b9 = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.274)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.ced)] +// CHECK:STDOUT: %T.as_type.loc9_31.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_31.1 [symbolic = %pattern_type (constants.%pattern_type.612)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.b50)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_31.1 [symbolic = %require_complete (constants.%require_complete.03d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_31.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -977,8 +977,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.274) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.274 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ced +// CHECK:STDOUT: %T.as_type.loc9_31.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.612 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_mismatch_impl_self_with_fixed_specific.carbon @@ -1004,11 +1004,11 @@ fn B() { // CHECK:STDOUT: %I.facet: %I.type = facet_value %C.13c, (%I.impl_witness) [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T.651: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.651 [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.651 [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %B.type: type = fn_type @B [concrete] // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1065,21 +1065,21 @@ fn B() { // CHECK:STDOUT: } // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.422) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @A.%pattern_type (%pattern_type.f4e) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @A.%pattern_type (%pattern_type.f4e) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_7.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.651)] -// CHECK:STDOUT: %t.param: @A.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @A.%T.as_type.loc9_23.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.651)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_23.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref, %T.as_type.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @A.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @A.%T.as_type.loc9_23.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } @@ -1128,13 +1128,13 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc9_7.2: %I.type) { // CHECK:STDOUT: %T.loc9_7.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.651)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @A.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @A.%T.as_type.loc9_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1182,8 +1182,8 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T.651) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.651 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%empty_struct_type, constants.%empty_struct_type) { diff --git a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon index 972b5a183393..f095776cd983 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_as_type_knows_original_type.carbon @@ -228,18 +228,18 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %A: %J.type = symbolic_binding A, 0 [symbolic] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] -// CHECK:STDOUT: %pattern_type.14f: type = pattern_type %A.binding.as_type [symbolic] -// CHECK:STDOUT: %B: %A.binding.as_type = symbolic_binding B, 1 [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %pattern_type.5a3: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %B: %A.as_type = symbolic_binding B, 1 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C: type = class_type @C, @C(%A, %B) [symbolic] -// CHECK:STDOUT: %pattern_type.e04: type = pattern_type %C [symbolic] +// CHECK:STDOUT: %pattern_type.e4c: type = pattern_type %C [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%A, %B) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(%A.loc25_7.2: %J.type, %B.loc25_14.2: @F.%A.binding.as_type (%A.binding.as_type)) { +// CHECK:STDOUT: generic fn @F(%A.loc25_7.2: %J.type, %B.loc25_14.2: @F.%A.as_type.loc25_17.1 (%A.as_type)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -250,7 +250,7 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %x.ref: @F.%C.loc25_29.1 (%C) = name_ref x, %x -// CHECK:STDOUT: %.loc27: %J.type = converted constants.%A.binding.as_type, constants.%A [symbolic = %A.loc25_7.1 (constants.%A)] +// CHECK:STDOUT: %.loc27: %J.type = converted constants.%A.as_type, constants.%A [symbolic = %A.loc25_7.1 (constants.%A)] // CHECK:STDOUT: %G.specific_fn.loc27_3.1: = specific_function %G.ref, @G(constants.%A, constants.%B) [symbolic = %G.specific_fn.loc27_3.2 (constants.%G.specific_fn)] // CHECK:STDOUT: %G.call: init %empty_tuple.type = call %G.specific_fn.loc27_3.1(%x.ref) // CHECK:STDOUT: @@ -259,10 +259,10 @@ fn F[A:! J, B:! A](x: C(A, B)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { // CHECK:STDOUT: %A.loc25_7.1 => constants.%A -// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type +// CHECK:STDOUT: %A.as_type.loc25_17.1 => constants.%A.as_type // CHECK:STDOUT: %B.loc25_14.1 => constants.%B -// CHECK:STDOUT: %pattern_type.loc25_14 => constants.%pattern_type.14f +// CHECK:STDOUT: %pattern_type.loc25_14 => constants.%pattern_type.5a3 // CHECK:STDOUT: %C.loc25_29.1 => constants.%C -// CHECK:STDOUT: %pattern_type.loc25_21 => constants.%pattern_type.e04 +// CHECK:STDOUT: %pattern_type.loc25_21 => constants.%pattern_type.e4c // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon index 603e94ba1df6..af0d957f0e91 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_to_narrowed_facet_type.carbon @@ -100,12 +100,12 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.0dc: type = pattern_type %Eats.type [concrete] // CHECK:STDOUT: %T: %Eats.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.93e: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.3ec: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.9d9: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.8a0: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %BitAndWith.type.f2e: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.f2e = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.type.b10: type = facet_type <@BitAndWith, @BitAndWith(type)> [concrete] @@ -119,13 +119,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %facet_type: type = facet_type <@Eats & @Animal> [concrete] // CHECK:STDOUT: %pattern_type.37f: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %U: %facet_type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] -// CHECK:STDOUT: %pattern_type.256: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.c75: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.ff4: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.2df: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U, @Eats [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.binding.as_type, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %U.as_type, (%Eats.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -153,26 +153,26 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.3ec) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.3ec) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc6_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc6_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] -// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc6_29.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc6_29.1: type = splice_block %.loc6_29.2 [symbolic = %T.as_type.loc6_29.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc6_10.2 [symbolic = %T.loc6_10.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc6_29.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc6_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc6_29.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc6_29.2: type = converted %T.ref, %T.as_type.loc6_29.2 [symbolic = %T.as_type.loc6_29.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type) = value_binding e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc6_29.1 (%T.as_type) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %U.patt: %pattern_type.37f = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.256) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.256) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.c75) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.c75) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -185,13 +185,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc8_28.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc8_28.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc8_18.2: %facet_type = symbolic_binding U, 0 [symbolic = %U.loc8_18.1 (constants.%U)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_39.1: type = splice_block %.loc8_39.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_39.1: type = splice_block %.loc8_39.2 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref: %facet_type = name_ref U, %U.loc8_18.2 [symbolic = %U.loc8_18.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc8_39.2: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc8_39.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc8_39.2: type = converted %U.ref, %U.as_type.loc8_39.2 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%U.binding.as_type (%U.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -219,13 +219,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc6_10.2: %Eats.type) { // CHECK:STDOUT: %T.loc6_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc6_10.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc6_10.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.93e)] +// CHECK:STDOUT: %T.as_type.loc6_29.1: type = facet_access_type %T.loc6_10.1 [symbolic = %T.as_type.loc6_29.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc6_29.1 [symbolic = %pattern_type (constants.%pattern_type.3ec)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.9d9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc6_29.1 [symbolic = %require_complete (constants.%require_complete.8a0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc6_29.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -233,21 +233,21 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%U.loc8_18.2: %facet_type) { // CHECK:STDOUT: %U.loc8_18.1: %facet_type = symbolic_binding U, 0 [symbolic = %U.loc8_18.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc8_18.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.256)] +// CHECK:STDOUT: %U.as_type.loc8_39.1: type = facet_access_type %U.loc8_18.1 [symbolic = %U.as_type.loc8_39.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc8_39.1 [symbolic = %pattern_type (constants.%pattern_type.c75)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.ff4)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc8_39.1 [symbolic = %require_complete (constants.%require_complete.2df)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %U.loc8_18.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value %U.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] +// CHECK:STDOUT: %Eats.facet.loc8_50.2: %Eats.type = facet_value %U.as_type.loc8_39.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc8_44.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc8_50.2) [symbolic = %Feed.specific_fn.loc8_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.binding.as_type (%U.binding.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%U.binding.as_type (%U.binding.as_type) = name_ref a, %a -// CHECK:STDOUT: %Eats.facet.loc8_50.1: %Eats.type = facet_value constants.%U.binding.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] -// CHECK:STDOUT: %.loc8_50: %Eats.type = converted constants.%U.binding.as_type, %Eats.facet.loc8_50.1 [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%U.as_type.loc8_39.1 (%U.as_type) = name_ref a, %a +// CHECK:STDOUT: %Eats.facet.loc8_50.1: %Eats.type = facet_value constants.%U.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] +// CHECK:STDOUT: %.loc8_50: %Eats.type = converted constants.%U.as_type, %Eats.facet.loc8_50.1 [symbolic = %Eats.facet.loc8_50.2 (constants.%Eats.facet)] // CHECK:STDOUT: %Feed.specific_fn.loc8_44.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet) [symbolic = %Feed.specific_fn.loc8_44.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc8_44.1(%a.ref) // CHECK:STDOUT: return @@ -264,23 +264,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T) { // CHECK:STDOUT: %T.loc6_10.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.93e +// CHECK:STDOUT: %T.as_type.loc6_29.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%U) { // CHECK:STDOUT: %U.loc8_18.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.256 +// CHECK:STDOUT: %U.as_type.loc8_39.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c75 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%Eats.facet) { // CHECK:STDOUT: %T.loc6_10.1 => constants.%Eats.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.256 +// CHECK:STDOUT: %T.as_type.loc6_29.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c75 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.ff4 +// CHECK:STDOUT: %require_complete => constants.%require_complete.2df // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- bigger.carbon @@ -308,25 +308,25 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %facet_type.2db: type = facet_type <@Eats & @Tame> [concrete] // CHECK:STDOUT: %pattern_type.fa7: type = pattern_type %facet_type.2db [concrete] // CHECK:STDOUT: %V: %facet_type.2db = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] -// CHECK:STDOUT: %pattern_type.795: type = pattern_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %pattern_type.2dd: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %FeedTame.type: type = fn_type @FeedTame [concrete] // CHECK:STDOUT: %FeedTame: %FeedTame.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.12d: = require_complete_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.fa2: = require_complete_type %V.as_type [symbolic] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.10c: = bound_method %Eats.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.a63: type = facet_type <@Eats & @Animal> [concrete] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.986: = bound_method %facet_type.a63, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.206: type = facet_type <@Eats & @Animal & @Tame> [concrete] // CHECK:STDOUT: %pattern_type.fb4: type = pattern_type %facet_type.206 [concrete] // CHECK:STDOUT: %W: %facet_type.206 = symbolic_binding W, 0 [symbolic] -// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W [symbolic] -// CHECK:STDOUT: %pattern_type.e8e: type = pattern_type %W.binding.as_type [symbolic] +// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] +// CHECK:STDOUT: %pattern_type.db8: type = pattern_type %W.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal.type: type = fn_type @HandleTameAnimal [concrete] // CHECK:STDOUT: %HandleTameAnimal: %HandleTameAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.817: = require_complete_type %W.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.32e: = require_complete_type %W.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W, @Eats [symbolic] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W, @Tame [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.2db = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.2db = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %FeedTame.specific_fn: = specific_function %FeedTame, @FeedTame(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -356,8 +356,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Tame.decl: type = interface_decl @Tame [concrete = constants.%Tame.type] {} {} // CHECK:STDOUT: %FeedTame.decl: %FeedTame.type = fn_decl @FeedTame [concrete = constants.%FeedTame] { // CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.795) = value_param_pattern [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.795) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame.%pattern_type (%pattern_type.2dd) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame.%pattern_type (%pattern_type.2dd) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_22.1: type = splice_block %.loc7_22.3 [concrete = constants.%facet_type.2db] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -370,18 +370,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc7_22.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc7_22.2 [concrete = constants.%facet_type.2db] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc7_14.2: %facet_type.2db = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_40.1: type = splice_block %.loc7_40.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { +// CHECK:STDOUT: %v.param: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_40.1: type = splice_block %.loc7_40.2 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] { // CHECK:STDOUT: %V.ref: %facet_type.2db = name_ref V, %V.loc7_14.2 [symbolic = %V.loc7_14.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc7_40.2: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %V.as_type.loc7_40.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc7_40.2: type = converted %V.ref, %V.as_type.loc7_40.2 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame.%V.binding.as_type (%V.binding.as_type) = value_binding v, %v.param +// CHECK:STDOUT: %v: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal.decl: %HandleTameAnimal.type = fn_decl @HandleTameAnimal [concrete = constants.%HandleTameAnimal] { // CHECK:STDOUT: %W.patt: %pattern_type.fb4 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = value_param_pattern [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.e8e) = at_binding_pattern w, %w.param_patt [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal.%pattern_type (%pattern_type.db8) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal.%pattern_type (%pattern_type.db8) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_39.1: type = splice_block %.loc9_39.3 [concrete = constants.%facet_type.206] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -400,13 +400,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc9_39.3: type = converted %type.as.BitAndWith.impl.Op.call.loc9_39, %.loc9_39.2 [concrete = constants.%facet_type.206] // CHECK:STDOUT: } // CHECK:STDOUT: %W.loc9_22.2: %facet_type.206 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] -// CHECK:STDOUT: %w.param: @HandleTameAnimal.%W.binding.as_type (%W.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_50.1: type = splice_block %.loc9_50.2 [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] { +// CHECK:STDOUT: %w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_50.1: type = splice_block %.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] { // CHECK:STDOUT: %W.ref: %facet_type.206 = name_ref W, %W.loc9_22.2 [symbolic = %W.loc9_22.1 (constants.%W)] -// CHECK:STDOUT: %W.as_type: type = facet_access_type %W.ref [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] -// CHECK:STDOUT: %.loc9_50.2: type = converted %W.ref, %W.as_type [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] +// CHECK:STDOUT: %W.as_type.loc9_50.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc9_50.2: type = converted %W.ref, %W.as_type.loc9_50.2 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: @HandleTameAnimal.%W.binding.as_type (%W.binding.as_type) = value_binding w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = value_binding w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -445,13 +445,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedTame(%V.loc7_14.2: %facet_type.2db) { // CHECK:STDOUT: %V.loc7_14.1: %facet_type.2db = symbolic_binding V, 0 [symbolic = %V.loc7_14.1 (constants.%V)] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc7_14.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.795)] +// CHECK:STDOUT: %V.as_type.loc7_40.1: type = facet_access_type %V.loc7_14.1 [symbolic = %V.as_type.loc7_40.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc7_40.1 [symbolic = %pattern_type (constants.%pattern_type.2dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.12d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc7_40.1 [symbolic = %require_complete (constants.%require_complete.fa2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.binding.as_type (%V.binding.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame.%V.as_type.loc7_40.1 (%V.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -459,22 +459,22 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleTameAnimal(%W.loc9_22.2: %facet_type.206) { // CHECK:STDOUT: %W.loc9_22.1: %facet_type.206 = symbolic_binding W, 0 [symbolic = %W.loc9_22.1 (constants.%W)] -// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W.loc9_22.1 [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.e8e)] +// CHECK:STDOUT: %W.as_type.loc9_50.1: type = facet_access_type %W.loc9_22.1 [symbolic = %W.as_type.loc9_50.1 (constants.%W.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc9_50.1 [symbolic = %pattern_type (constants.%pattern_type.db8)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.binding.as_type [symbolic = %require_complete (constants.%require_complete.817)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc9_50.1 [symbolic = %require_complete (constants.%require_complete.32e)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc9_22.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc9_22.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.2db = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc10_13.2: %facet_type.2db = facet_value %W.as_type.loc9_50.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.2: = specific_function constants.%FeedTame, @FeedTame(%facet_value.loc10_13.2) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.binding.as_type (%W.binding.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame.ref: %FeedTame.type = name_ref FeedTame, file.%FeedTame.decl [concrete = constants.%FeedTame] -// CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.binding.as_type (%W.binding.as_type) = name_ref w, %w -// CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.2db = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] -// CHECK:STDOUT: %.loc10: %facet_type.2db = converted constants.%W.binding.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %w.ref: @HandleTameAnimal.%W.as_type.loc9_50.1 (%W.as_type) = name_ref w, %w +// CHECK:STDOUT: %facet_value.loc10_13.1: %facet_type.2db = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc10: %facet_type.2db = converted constants.%W.as_type, %facet_value.loc10_13.1 [symbolic = %facet_value.loc10_13.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame.specific_fn.loc10_3.1: = specific_function %FeedTame.ref, @FeedTame(constants.%facet_value) [symbolic = %FeedTame.specific_fn.loc10_3.2 (constants.%FeedTame.specific_fn)] // CHECK:STDOUT: %FeedTame.call: init %empty_tuple.type = call %FeedTame.specific_fn.loc10_3.1(%w.ref) // CHECK:STDOUT: return @@ -495,23 +495,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%V) { // CHECK:STDOUT: %V.loc7_14.1 => constants.%V -// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.795 +// CHECK:STDOUT: %V.as_type.loc7_40.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal(constants.%W) { // CHECK:STDOUT: %W.loc9_22.1 => constants.%W -// CHECK:STDOUT: %W.binding.as_type => constants.%W.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e8e +// CHECK:STDOUT: %W.as_type.loc9_50.1 => constants.%W.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.db8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame(constants.%facet_value) { // CHECK:STDOUT: %V.loc7_14.1 => constants.%facet_value -// CHECK:STDOUT: %V.binding.as_type => constants.%W.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e8e +// CHECK:STDOUT: %V.as_type.loc7_40.1 => constants.%W.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.db8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.817 +// CHECK:STDOUT: %require_complete => constants.%require_complete.32e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- with_blanket.carbon @@ -527,9 +527,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.e10: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.760: = impl_witness @A.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A) [symbolic] -// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %A.binding.as_type, (%Eats.impl_witness.760) [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.149: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %Eats.facet: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.149) [symbolic] // CHECK:STDOUT: %BitAndWith.type.f2e: type = generic_interface_type @BitAndWith [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %BitAndWith.generic: %BitAndWith.type.f2e = struct_value () [concrete] @@ -544,27 +544,27 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %facet_type.2db: type = facet_type <@Eats & @Tame> [concrete] // CHECK:STDOUT: %pattern_type.fa7: type = pattern_type %facet_type.2db [concrete] // CHECK:STDOUT: %V: %facet_type.2db = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] -// CHECK:STDOUT: %pattern_type.795: type = pattern_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %pattern_type.2dd: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %FeedTame2.type: type = fn_type @FeedTame2 [concrete] // CHECK:STDOUT: %FeedTame2: %FeedTame2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.12d: = require_complete_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.fa2: = require_complete_type %V.as_type [symbolic] // CHECK:STDOUT: %type.as.BitAndWith.impl.Op.bound.92c: = bound_method %Animal.type, %type.as.BitAndWith.impl.Op [concrete] // CHECK:STDOUT: %facet_type.afc: type = facet_type <@Animal & @Tame> [concrete] // CHECK:STDOUT: %pattern_type.310: type = pattern_type %facet_type.afc [concrete] // CHECK:STDOUT: %W: %facet_type.afc = symbolic_binding W, 0 [symbolic] -// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W [symbolic] -// CHECK:STDOUT: %pattern_type.da7: type = pattern_type %W.binding.as_type [symbolic] +// CHECK:STDOUT: %W.as_type: type = facet_access_type %W [symbolic] +// CHECK:STDOUT: %pattern_type.4b7: type = pattern_type %W.as_type [symbolic] // CHECK:STDOUT: %HandleTameAnimal2.type: type = fn_type @HandleTameAnimal2 [concrete] // CHECK:STDOUT: %HandleTameAnimal2: %HandleTameAnimal2.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.80f: = require_complete_type %W.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.15d: = require_complete_type %W.as_type [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W, @Eats [symbolic] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W, @Animal [symbolic] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.binding.as_type, (%Animal.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.8ab: = impl_witness @A.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%Animal.facet) [symbolic] -// CHECK:STDOUT: %.3cf: require_specific_def_type = require_specific_def @A.binding.as_type.as.Eats.impl(%Animal.facet) [symbolic] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type, (%Animal.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.3bf: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] +// CHECK:STDOUT: %.eb9: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W, @Tame [symbolic] -// CHECK:STDOUT: %facet_value: %facet_type.2db = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %facet_value: %facet_type.2db = facet_value %W.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %FeedTame2.specific_fn: = specific_function %FeedTame2, @FeedTame2(%facet_value) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -592,12 +592,12 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Tame.decl: type = interface_decl @Tame [concrete = constants.%Tame.type] {} {} -// CHECK:STDOUT: impl_decl @A.binding.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @A.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %A.patt: %pattern_type.e10 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc7_15.1 [symbolic = %A.loc7_15.2 (constants.%A)] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A.ref [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %.loc7_26: type = converted %A.ref, %A.as_type [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %A.as_type.loc7_26.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] +// CHECK:STDOUT: %.loc7_26: type = converted %A.ref, %A.as_type.loc7_26.1 [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: %.loc7_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -607,8 +607,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %FeedTame2.decl: %FeedTame2.type = fn_decl @FeedTame2 [concrete = constants.%FeedTame2] { // CHECK:STDOUT: %V.patt: %pattern_type.fa7 = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.795) = value_param_pattern [concrete] -// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.795) = at_binding_pattern v, %v.param_patt [concrete] +// CHECK:STDOUT: %v.param_patt: @FeedTame2.%pattern_type (%pattern_type.2dd) = value_param_pattern [concrete] +// CHECK:STDOUT: %v.patt: @FeedTame2.%pattern_type (%pattern_type.2dd) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.3 [concrete = constants.%facet_type.2db] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -621,18 +621,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc9_23.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc9_23.2 [concrete = constants.%facet_type.2db] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc9_15.2: %facet_type.2db = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] -// CHECK:STDOUT: %v.param: @FeedTame2.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_41.1: type = splice_block %.loc9_41.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { +// CHECK:STDOUT: %v.param: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_41.1: type = splice_block %.loc9_41.2 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] { // CHECK:STDOUT: %V.ref: %facet_type.2db = name_ref V, %V.loc9_15.2 [symbolic = %V.loc9_15.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc9_41.2: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %V.as_type.loc9_41.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc9_41.2: type = converted %V.ref, %V.as_type.loc9_41.2 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: @FeedTame2.%V.binding.as_type (%V.binding.as_type) = value_binding v, %v.param +// CHECK:STDOUT: %v: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type) = value_binding v, %v.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleTameAnimal2.decl: %HandleTameAnimal2.type = fn_decl @HandleTameAnimal2 [concrete = constants.%HandleTameAnimal2] { // CHECK:STDOUT: %W.patt: %pattern_type.310 = symbolic_binding_pattern W, 0 [concrete] -// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = value_param_pattern [concrete] -// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.da7) = at_binding_pattern w, %w.param_patt [concrete] +// CHECK:STDOUT: %w.param_patt: @HandleTameAnimal2.%pattern_type (%pattern_type.4b7) = value_param_pattern [concrete] +// CHECK:STDOUT: %w.patt: @HandleTameAnimal2.%pattern_type (%pattern_type.4b7) = at_binding_pattern w, %w.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc11_33.1: type = splice_block %.loc11_33.3 [concrete = constants.%facet_type.afc] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -645,13 +645,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.loc11_33.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc11_33.2 [concrete = constants.%facet_type.afc] // CHECK:STDOUT: } // CHECK:STDOUT: %W.loc11_23.2: %facet_type.afc = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] -// CHECK:STDOUT: %w.param: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc11_44.1: type = splice_block %.loc11_44.2 [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] { +// CHECK:STDOUT: %w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc11_44.1: type = splice_block %.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] { // CHECK:STDOUT: %W.ref: %facet_type.afc = name_ref W, %W.loc11_23.2 [symbolic = %W.loc11_23.1 (constants.%W)] -// CHECK:STDOUT: %W.as_type: type = facet_access_type %W.ref [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] -// CHECK:STDOUT: %.loc11_44.2: type = converted %W.ref, %W.as_type [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] +// CHECK:STDOUT: %W.as_type.loc11_44.2: type = facet_access_type %W.ref [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %.loc11_44.2: type = converted %W.ref, %W.as_type.loc11_44.2 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type) = value_binding w, %w.param +// CHECK:STDOUT: %w: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = value_binding w, %w.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -688,16 +688,16 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @A.binding.as_type.as.Eats.impl(%A.loc7_15.1: %Animal.type) { +// CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc7_15.1: %Animal.type) { // CHECK:STDOUT: %A.loc7_15.2: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc7_15.2 (constants.%A)] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc7_15.2 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A.loc7_15.2) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.760)] +// CHECK:STDOUT: %A.as_type.loc7_26.2: type = facet_access_type %A.loc7_15.2 [symbolic = %A.as_type.loc7_26.2 (constants.%A.as_type)] +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc7_15.2) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.149)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_26 as %Eats.ref { -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.binding.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.1: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.760)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc7_36.2 (constants.%Eats.impl_witness.149)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Eats.impl_witness.loc7_36.1 @@ -706,13 +706,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedTame2(%V.loc9_15.2: %facet_type.2db) { // CHECK:STDOUT: %V.loc9_15.1: %facet_type.2db = symbolic_binding V, 0 [symbolic = %V.loc9_15.1 (constants.%V)] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc9_15.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.795)] +// CHECK:STDOUT: %V.as_type.loc9_41.1: type = facet_access_type %V.loc9_15.1 [symbolic = %V.as_type.loc9_41.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc9_41.1 [symbolic = %pattern_type (constants.%pattern_type.2dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.12d)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc9_41.1 [symbolic = %require_complete (constants.%require_complete.fa2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.binding.as_type (%V.binding.as_type)) { +// CHECK:STDOUT: fn(%v.param: @FeedTame2.%V.as_type.loc9_41.1 (%V.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -720,25 +720,25 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleTameAnimal2(%W.loc11_23.2: %facet_type.afc) { // CHECK:STDOUT: %W.loc11_23.1: %facet_type.afc = symbolic_binding W, 0 [symbolic = %W.loc11_23.1 (constants.%W)] -// CHECK:STDOUT: %W.binding.as_type: type = symbolic_binding_type W, 0, %W.loc11_23.1 [symbolic = %W.binding.as_type (constants.%W.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %W.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.da7)] +// CHECK:STDOUT: %W.as_type.loc11_44.1: type = facet_access_type %W.loc11_23.1 [symbolic = %W.as_type.loc11_44.1 (constants.%W.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %W.as_type.loc11_44.1 [symbolic = %pattern_type (constants.%pattern_type.4b7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %W.binding.as_type [symbolic = %require_complete (constants.%require_complete.80f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %W.as_type.loc11_44.1 [symbolic = %require_complete (constants.%require_complete.15d)] // CHECK:STDOUT: %Animal.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Animal [symbolic = %Animal.lookup_impl_witness (constants.%Animal.lookup_impl_witness)] -// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.binding.as_type, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet (constants.%Animal.facet)] -// CHECK:STDOUT: %.loc12_14.2: require_specific_def_type = require_specific_def @A.binding.as_type.as.Eats.impl(%Animal.facet) [symbolic = %.loc12_14.2 (constants.%.3cf)] +// CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %W.as_type.loc11_44.1, (%Animal.lookup_impl_witness) [symbolic = %Animal.facet (constants.%Animal.facet)] +// CHECK:STDOUT: %.loc12_14.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%Animal.facet) [symbolic = %.loc12_14.2 (constants.%.eb9)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] // CHECK:STDOUT: %Tame.lookup_impl_witness: = lookup_impl_witness %W.loc11_23.1, @Tame [symbolic = %Tame.lookup_impl_witness (constants.%Tame.lookup_impl_witness)] -// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.2db = facet_value %W.binding.as_type, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %facet_value.loc12_14.2: %facet_type.2db = facet_value %W.as_type.loc11_44.1, (%Eats.lookup_impl_witness, %Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.2: = specific_function constants.%FeedTame2, @FeedTame2(%facet_value.loc12_14.2) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type)) { +// CHECK:STDOUT: fn(%w.param: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedTame2.ref: %FeedTame2.type = name_ref FeedTame2, file.%FeedTame2.decl [concrete = constants.%FeedTame2] -// CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.binding.as_type (%W.binding.as_type) = name_ref w, %w -// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.2db = facet_value constants.%W.binding.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_14.1: %facet_type.2db = converted constants.%W.binding.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %w.ref: @HandleTameAnimal2.%W.as_type.loc11_44.1 (%W.as_type) = name_ref w, %w +// CHECK:STDOUT: %facet_value.loc12_14.1: %facet_type.2db = facet_value constants.%W.as_type, (constants.%Eats.lookup_impl_witness, constants.%Tame.lookup_impl_witness) [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] +// CHECK:STDOUT: %.loc12_14.1: %facet_type.2db = converted constants.%W.as_type, %facet_value.loc12_14.1 [symbolic = %facet_value.loc12_14.2 (constants.%facet_value)] // CHECK:STDOUT: %FeedTame2.specific_fn.loc12_3.1: = specific_function %FeedTame2.ref, @FeedTame2(constants.%facet_value) [symbolic = %FeedTame2.specific_fn.loc12_3.2 (constants.%FeedTame2.specific_fn)] // CHECK:STDOUT: %FeedTame2.call: init %empty_tuple.type = call %FeedTame2.specific_fn.loc12_3.1(%w.ref) // CHECK:STDOUT: return @@ -757,10 +757,10 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%A) { +// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc7_15.2 => constants.%A -// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.760 +// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%A.as_type +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.149 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet) { @@ -769,31 +769,31 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%V) { // CHECK:STDOUT: %V.loc9_15.1 => constants.%V -// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.795 +// CHECK:STDOUT: %V.as_type.loc9_41.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2dd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleTameAnimal2(constants.%W) { // CHECK:STDOUT: %W.loc11_23.1 => constants.%W -// CHECK:STDOUT: %W.binding.as_type => constants.%W.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.da7 +// CHECK:STDOUT: %W.as_type.loc11_44.1 => constants.%W.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4b7 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%Animal.facet) { +// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%Animal.facet) { // CHECK:STDOUT: %A.loc7_15.2 => constants.%Animal.facet -// CHECK:STDOUT: %A.binding.as_type => constants.%W.binding.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.8ab +// CHECK:STDOUT: %A.as_type.loc7_26.2 => constants.%W.as_type +// CHECK:STDOUT: %Eats.impl_witness.loc7_36.2 => constants.%Eats.impl_witness.3bf // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedTame2(constants.%facet_value) { // CHECK:STDOUT: %V.loc9_15.1 => constants.%facet_value -// CHECK:STDOUT: %V.binding.as_type => constants.%W.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.da7 +// CHECK:STDOUT: %V.as_type.loc9_41.1 => constants.%W.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4b7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.80f +// CHECK:STDOUT: %require_complete => constants.%require_complete.15d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- equivalent.carbon @@ -805,20 +805,20 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.faf: type = pattern_type %A.type [concrete] // CHECK:STDOUT: %T: %A.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.057cf4.1: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.c86b37.1: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %TakesA.type: type = fn_type @TakesA [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesA: %TakesA.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.1a7376.1: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d91fbe.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %.Self.091: %A.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.091 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.091 [symbolic_self] // CHECK:STDOUT: %U: %A.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] -// CHECK:STDOUT: %pattern_type.057cf4.2: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.c86b37.2: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %WithExtraWhere.type: type = fn_type @WithExtraWhere [concrete] // CHECK:STDOUT: %WithExtraWhere: %WithExtraWhere.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.1a7376.2: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.d91fbe.2: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %TakesA.specific_fn: = specific_function %TakesA, @TakesA(%U) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -840,26 +840,26 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %A.decl: type = interface_decl @A [concrete = constants.%A.type] {} {} // CHECK:STDOUT: %TakesA.decl: %TakesA.type = fn_decl @TakesA [concrete = constants.%TakesA] { // CHECK:STDOUT: %T.patt: %pattern_type.faf = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.057cf4.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesA.%pattern_type (%pattern_type.c86b37.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesA.%pattern_type (%pattern_type.c86b37.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_15: type = splice_block %A.ref [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_12.2: %A.type = symbolic_binding T, 0 [symbolic = %T.loc7_12.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @TakesA.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_28.1: type = splice_block %.loc7_28.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @TakesA.%T.as_type.loc7_28.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_28.1: type = splice_block %.loc7_28.2 [symbolic = %T.as_type.loc7_28.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %A.type = name_ref T, %T.loc7_12.2 [symbolic = %T.loc7_12.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_28.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc7_28.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_28.2: type = converted %T.ref, %T.as_type.loc7_28.2 [symbolic = %T.as_type.loc7_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesA.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %x: @TakesA.%T.as_type.loc7_28.1 (%T.as_type) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %WithExtraWhere.decl: %WithExtraWhere.type = fn_decl @WithExtraWhere [concrete = constants.%WithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.faf = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.057cf4.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: @WithExtraWhere.%pattern_type (%pattern_type.c86b37.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @WithExtraWhere.%pattern_type (%pattern_type.c86b37.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_25.1: type = splice_block %.loc9_25.2 [concrete = constants.%A.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -867,21 +867,21 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.2: %A.type = symbolic_binding .Self [symbolic_self = constants.%.Self.091] // CHECK:STDOUT: %.Self.ref: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.091] // CHECK:STDOUT: %.loc9_43: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_31: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_31: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_25.2: type = where_expr %.Self.2 [concrete = constants.%A.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%A.type // CHECK:STDOUT: requirement_impls %.loc9_31, %.loc9_43 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc9_20.2: %A.type = symbolic_binding U, 0 [symbolic = %U.loc9_20.1 (constants.%U)] -// CHECK:STDOUT: %y.param: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_52.1: type = splice_block %.loc9_52.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_52.1: type = splice_block %.loc9_52.2 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref: %A.type = name_ref U, %U.loc9_20.2 [symbolic = %U.loc9_20.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc9_52.2: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc9_52.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc9_52.2: type = converted %U.ref, %U.as_type.loc9_52.2 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type) = value_binding y, %y.param +// CHECK:STDOUT: %y: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = value_binding y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -898,13 +898,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TakesA(%T.loc7_12.2: %A.type) { // CHECK:STDOUT: %T.loc7_12.1: %A.type = symbolic_binding T, 0 [symbolic = %T.loc7_12.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.057cf4.1)] +// CHECK:STDOUT: %T.as_type.loc7_28.1: type = facet_access_type %T.loc7_12.1 [symbolic = %T.as_type.loc7_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_28.1 [symbolic = %pattern_type (constants.%pattern_type.c86b37.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.1a7376.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_28.1 [symbolic = %require_complete (constants.%require_complete.d91fbe.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesA.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesA.%T.as_type.loc7_28.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -912,18 +912,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @WithExtraWhere(%U.loc9_20.2: %A.type) { // CHECK:STDOUT: %U.loc9_20.1: %A.type = symbolic_binding U, 0 [symbolic = %U.loc9_20.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc9_20.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.057cf4.2)] +// CHECK:STDOUT: %U.as_type.loc9_52.1: type = facet_access_type %U.loc9_20.1 [symbolic = %U.as_type.loc9_52.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_52.1 [symbolic = %pattern_type (constants.%pattern_type.c86b37.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.1a7376.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_52.1 [symbolic = %require_complete (constants.%require_complete.d91fbe.2)] // CHECK:STDOUT: %TakesA.specific_fn.loc10_3.2: = specific_function constants.%TakesA, @TakesA(%U.loc9_20.1) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type)) { +// CHECK:STDOUT: fn(%y.param: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesA.ref: %TakesA.type = name_ref TakesA, file.%TakesA.decl [concrete = constants.%TakesA] -// CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.binding.as_type (%U.binding.as_type) = name_ref y, %y -// CHECK:STDOUT: %.loc10: %A.type = converted constants.%U.binding.as_type, constants.%U [symbolic = %U.loc9_20.1 (constants.%U)] +// CHECK:STDOUT: %y.ref: @WithExtraWhere.%U.as_type.loc9_52.1 (%U.as_type) = name_ref y, %y +// CHECK:STDOUT: %.loc10: %A.type = converted constants.%U.as_type, constants.%U [symbolic = %U.loc9_20.1 (constants.%U)] // CHECK:STDOUT: %TakesA.specific_fn.loc10_3.1: = specific_function %TakesA.ref, @TakesA(constants.%U) [symbolic = %TakesA.specific_fn.loc10_3.2 (constants.%TakesA.specific_fn)] // CHECK:STDOUT: %TakesA.call: init %empty_tuple.type = call %TakesA.specific_fn.loc10_3.1(%y.ref) // CHECK:STDOUT: return @@ -936,23 +936,23 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%T) { // CHECK:STDOUT: %T.loc7_12.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.057cf4.1 +// CHECK:STDOUT: %T.as_type.loc7_28.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c86b37.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @WithExtraWhere(constants.%U) { // CHECK:STDOUT: %U.loc9_20.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.057cf4.2 +// CHECK:STDOUT: %U.as_type.loc9_52.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c86b37.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesA(constants.%U) { // CHECK:STDOUT: %T.loc7_12.1 => constants.%U -// CHECK:STDOUT: %T.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.057cf4.2 +// CHECK:STDOUT: %T.as_type.loc7_28.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c86b37.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.1a7376.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.d91fbe.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- no_interfaces_success.carbon @@ -967,21 +967,21 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesTypeDeduced: %TakesTypeDeduced.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T.67db0b.1 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %pattern_type.9a5: type = pattern_type %type [concrete] // CHECK:STDOUT: %U: %type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] -// CHECK:STDOUT: %pattern_type.349: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %CallsWithExtraWhere.type: type = fn_type @CallsWithExtraWhere [concrete] // CHECK:STDOUT: %CallsWithExtraWhere: %CallsWithExtraWhere.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d55: = require_complete_type %U.binding.as_type [symbolic] -// CHECK:STDOUT: %TakesTypeDeduced.specific_fn: = specific_function %TakesTypeDeduced, @TakesTypeDeduced(%U.binding.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.5ef: = require_complete_type %U.as_type [symbolic] +// CHECK:STDOUT: %TakesTypeDeduced.specific_fn: = specific_function %TakesTypeDeduced, @TakesTypeDeduced(%U.as_type) [symbolic] // CHECK:STDOUT: %T.67db0b.2: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %TakesTypeExplicit.type: type = fn_type @TakesTypeExplicit [concrete] // CHECK:STDOUT: %TakesTypeExplicit: %TakesTypeExplicit.type = struct_value () [concrete] // CHECK:STDOUT: %CallsWithExtraWhereExplicit.type: type = fn_type @CallsWithExtraWhereExplicit [concrete] // CHECK:STDOUT: %CallsWithExtraWhereExplicit: %CallsWithExtraWhereExplicit.type = struct_value () [concrete] -// CHECK:STDOUT: %TakesTypeExplicit.specific_fn: = specific_function %TakesTypeExplicit, @TakesTypeExplicit(%U.binding.as_type) [symbolic] +// CHECK:STDOUT: %TakesTypeExplicit.specific_fn: = specific_function %TakesTypeExplicit, @TakesTypeExplicit(%U.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1016,8 +1016,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithExtraWhere.decl: %CallsWithExtraWhere.type = fn_decl @CallsWithExtraWhere [concrete = constants.%CallsWithExtraWhere] { // CHECK:STDOUT: %U.patt: %pattern_type.9a5 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.349) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @CallsWithExtraWhere.%pattern_type (%pattern_type.86a) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_33.1: type = splice_block %.loc4_33.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1025,21 +1025,21 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc4_51: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc4_39: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc4_39: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc4_33.2: type = where_expr %.Self.2 [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc4_39, %.loc4_51 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc4_25.2: %type = symbolic_binding U, 0 [symbolic = %U.loc4_25.1 (constants.%U)] -// CHECK:STDOUT: %y.param: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_60.1: type = splice_block %.loc4_60.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_60.1: type = splice_block %.loc4_60.2 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc4_25.2 [symbolic = %U.loc4_25.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc4_60.2: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc4_60.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc4_60.2: type = converted %U.ref, %U.as_type.loc4_60.2 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.as_type) = value_binding y, %y.param +// CHECK:STDOUT: %y: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = value_binding y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: %TakesTypeExplicit.decl: %TakesTypeExplicit.type = fn_decl @TakesTypeExplicit [concrete = constants.%TakesTypeExplicit] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] @@ -1059,8 +1059,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc9_59: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_47: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_47: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_41.2: type = where_expr %.Self.2 [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc9_47, %.loc9_59 @@ -1085,18 +1085,18 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @CallsWithExtraWhere(%U.loc4_25.2: %type) { // CHECK:STDOUT: %U.loc4_25.1: %type = symbolic_binding U, 0 [symbolic = %U.loc4_25.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc4_25.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.349)] +// CHECK:STDOUT: %U.as_type.loc4_60.1: type = facet_access_type %U.loc4_25.1 [symbolic = %U.as_type.loc4_60.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc4_60.1 [symbolic = %pattern_type (constants.%pattern_type.86a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.d55)] -// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.2: = specific_function constants.%TakesTypeDeduced, @TakesTypeDeduced(%U.binding.as_type) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc4_60.1 [symbolic = %require_complete (constants.%require_complete.5ef)] +// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.2: = specific_function constants.%TakesTypeDeduced, @TakesTypeDeduced(%U.as_type.loc4_60.1) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.as_type)) { +// CHECK:STDOUT: fn(%y.param: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesTypeDeduced.ref: %TakesTypeDeduced.type = name_ref TakesTypeDeduced, file.%TakesTypeDeduced.decl [concrete = constants.%TakesTypeDeduced] -// CHECK:STDOUT: %y.ref: @CallsWithExtraWhere.%U.binding.as_type (%U.binding.as_type) = name_ref y, %y -// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.1: = specific_function %TakesTypeDeduced.ref, @TakesTypeDeduced(constants.%U.binding.as_type) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] +// CHECK:STDOUT: %y.ref: @CallsWithExtraWhere.%U.as_type.loc4_60.1 (%U.as_type) = name_ref y, %y +// CHECK:STDOUT: %TakesTypeDeduced.specific_fn.loc5_3.1: = specific_function %TakesTypeDeduced.ref, @TakesTypeDeduced(constants.%U.as_type) [symbolic = %TakesTypeDeduced.specific_fn.loc5_3.2 (constants.%TakesTypeDeduced.specific_fn)] // CHECK:STDOUT: %TakesTypeDeduced.call: init %empty_tuple.type = call %TakesTypeDeduced.specific_fn.loc5_3.1(%y.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1118,16 +1118,16 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %U.loc9_33.1: %type = symbolic_binding U, 0 [symbolic = %U.loc9_33.1 (constants.%U)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc9_33.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.2: = specific_function constants.%TakesTypeExplicit, @TakesTypeExplicit(%U.binding.as_type) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] +// CHECK:STDOUT: %U.as_type.loc10_22.2: type = facet_access_type %U.loc9_33.1 [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] +// CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.2: = specific_function constants.%TakesTypeExplicit, @TakesTypeExplicit(%U.as_type.loc10_22.2) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %TakesTypeExplicit.ref: %TakesTypeExplicit.type = name_ref TakesTypeExplicit, file.%TakesTypeExplicit.decl [concrete = constants.%TakesTypeExplicit] // CHECK:STDOUT: %U.ref: %type = name_ref U, %U.loc9_33.2 [symbolic = %U.loc9_33.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc10: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.1: = specific_function %TakesTypeExplicit.ref, @TakesTypeExplicit(constants.%U.binding.as_type) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] +// CHECK:STDOUT: %U.as_type.loc10_22.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc10: type = converted %U.ref, %U.as_type.loc10_22.1 [symbolic = %U.as_type.loc10_22.2 (constants.%U.as_type)] +// CHECK:STDOUT: %TakesTypeExplicit.specific_fn.loc10_3.1: = specific_function %TakesTypeExplicit.ref, @TakesTypeExplicit(constants.%U.as_type) [symbolic = %TakesTypeExplicit.specific_fn.loc10_3.2 (constants.%TakesTypeExplicit.specific_fn)] // CHECK:STDOUT: %TakesTypeExplicit.call: init %empty_tuple.type = call %TakesTypeExplicit.specific_fn.loc10_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1140,16 +1140,16 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithExtraWhere(constants.%U) { // CHECK:STDOUT: %U.loc4_25.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.349 +// CHECK:STDOUT: %U.as_type.loc4_60.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TakesTypeDeduced(constants.%U.binding.as_type) { -// CHECK:STDOUT: %T.loc3_22.1 => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.349 +// CHECK:STDOUT: specific @TakesTypeDeduced(constants.%U.as_type) { +// CHECK:STDOUT: %T.loc3_22.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.d55 +// CHECK:STDOUT: %require_complete => constants.%require_complete.5ef // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesTypeExplicit(constants.%T.67db0b.2) { @@ -1161,9 +1161,9 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %U.loc9_33.1 => constants.%U // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @TakesTypeExplicit(constants.%U.binding.as_type) { -// CHECK:STDOUT: %T.loc8_30.1 => constants.%U.binding.as_type -// CHECK:STDOUT: %T.loc8_30.2 => constants.%U.binding.as_type +// CHECK:STDOUT: specific @TakesTypeExplicit(constants.%U.as_type) { +// CHECK:STDOUT: %T.loc8_30.1 => constants.%U.as_type +// CHECK:STDOUT: %T.loc8_30.2 => constants.%U.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -1173,15 +1173,15 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %pattern_type.9a5: type = pattern_type %type [concrete] // CHECK:STDOUT: %T.f45530.1: %type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.f45530.1 [symbolic] -// CHECK:STDOUT: %pattern_type.349: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f45530.1 [symbolic] +// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %TakesExtraWhereDeduced.type: type = fn_type @TakesExtraWhereDeduced [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %TakesExtraWhereDeduced: %TakesExtraWhereDeduced.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.d55: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.5ef: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %U [symbolic] @@ -1216,8 +1216,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %TakesExtraWhereDeduced.decl: %TakesExtraWhereDeduced.type = fn_decl @TakesExtraWhereDeduced [concrete = constants.%TakesExtraWhereDeduced] { // CHECK:STDOUT: %T.patt: %pattern_type.9a5 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.349) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @TakesExtraWhereDeduced.%pattern_type (%pattern_type.86a) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc3_36.1: type = splice_block %.loc3_36.2 [concrete = constants.%type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -1225,21 +1225,21 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc3_54: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc3_42: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc3_42: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc3_36.2: type = where_expr %.Self.2 [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc3_42, %.loc3_54 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc3_28.2: %type = symbolic_binding T, 0 [symbolic = %T.loc3_28.1 (constants.%T.f45530.1)] -// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc3_70.1: type = splice_block %.loc3_70.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_70.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc3_70.1: type = splice_block %.loc3_70.2 [symbolic = %T.as_type.loc3_70.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %type = name_ref T, %T.loc3_28.2 [symbolic = %T.loc3_28.1 (constants.%T.f45530.1)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc3_70.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc3_70.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc3_70.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc3_70.2: type = converted %T.ref, %T.as_type.loc3_70.2 [symbolic = %T.as_type.loc3_70.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %x: @TakesExtraWhereDeduced.%T.as_type.loc3_70.1 (%T.as_type) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %CallsWithType.decl: %CallsWithType.type = fn_decl @CallsWithType [concrete = constants.%CallsWithType] { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 0 [concrete] @@ -1264,8 +1264,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_62: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_50: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_50: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_44.2: type = where_expr %.Self.2 [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc8_50, %.loc8_62 @@ -1286,13 +1286,13 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TakesExtraWhereDeduced(%T.loc3_28.2: %type) { // CHECK:STDOUT: %T.loc3_28.1: %type = symbolic_binding T, 0 [symbolic = %T.loc3_28.1 (constants.%T.f45530.1)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc3_28.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.349)] +// CHECK:STDOUT: %T.as_type.loc3_70.1: type = facet_access_type %T.loc3_28.1 [symbolic = %T.as_type.loc3_70.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc3_70.1 [symbolic = %pattern_type (constants.%pattern_type.86a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.d55)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc3_70.1 [symbolic = %require_complete (constants.%require_complete.5ef)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%x.param: @TakesExtraWhereDeduced.%T.as_type.loc3_70.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1352,8 +1352,8 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%T.f45530.1) { // CHECK:STDOUT: %T.loc3_28.1 => constants.%T.f45530.1 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.349 +// CHECK:STDOUT: %T.as_type.loc3_70.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallsWithType(constants.%U) { @@ -1363,7 +1363,7 @@ fn CallsWithTypeExplicit(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TakesExtraWhereDeduced(constants.%facet_value) { // CHECK:STDOUT: %T.loc3_28.1 => constants.%facet_value -// CHECK:STDOUT: %T.binding.as_type => constants.%U +// CHECK:STDOUT: %T.as_type.loc3_70.1 => constants.%U // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon index a8851707aef5..d76f939bba4f 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_blanket_impl.carbon @@ -32,28 +32,28 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.e10: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.760d13.1: = impl_witness @A.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A) [symbolic] -// CHECK:STDOUT: %Eats.facet.6e5: %Eats.type = facet_value %A.binding.as_type, (%Eats.impl_witness.760d13.1) [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.149e03.1: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A) [symbolic] +// CHECK:STDOUT: %Eats.facet.139: %Eats.type = facet_value %A.as_type, (%Eats.impl_witness.149e03.1) [symbolic] // CHECK:STDOUT: %pattern_type.0dc: type = pattern_type %Eats.type [concrete] // CHECK:STDOUT: %T.f11: %Eats.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.265: type = symbolic_binding_type T, 0, %T.f11 [symbolic] -// CHECK:STDOUT: %pattern_type.93e: type = pattern_type %T.binding.as_type.265 [symbolic] +// CHECK:STDOUT: %T.as_type.ac3: type = facet_access_type %T.f11 [symbolic] +// CHECK:STDOUT: %pattern_type.3ec: type = pattern_type %T.as_type.ac3 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.9d9: = require_complete_type %T.binding.as_type.265 [symbolic] +// CHECK:STDOUT: %require_complete.8a0: = require_complete_type %T.as_type.ac3 [symbolic] // CHECK:STDOUT: %T.998: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.e4f: type = symbolic_binding_type T, 0, %T.998 [symbolic] -// CHECK:STDOUT: %pattern_type.892: type = pattern_type %T.binding.as_type.e4f [symbolic] +// CHECK:STDOUT: %T.as_type.d11: type = facet_access_type %T.998 [symbolic] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %T.as_type.d11 [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.72f: = require_complete_type %T.binding.as_type.e4f [symbolic] +// CHECK:STDOUT: %require_complete.04b: = require_complete_type %T.as_type.d11 [symbolic] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.998, @Eats [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.760d13.2: = impl_witness @A.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%T.998) [symbolic] -// CHECK:STDOUT: %.860: require_specific_def_type = require_specific_def @A.binding.as_type.as.Eats.impl(%T.998) [symbolic] -// CHECK:STDOUT: %Eats.facet.a05: %Eats.type = facet_value %T.binding.as_type.e4f, (%Eats.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet.a05) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.149e03.2: = impl_witness @A.as_type.as.Eats.impl.%Eats.impl_witness_table, @A.as_type.as.Eats.impl(%T.998) [symbolic] +// CHECK:STDOUT: %.a47: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.998) [symbolic] +// CHECK:STDOUT: %Eats.facet.e68: %Eats.type = facet_value %T.as_type.d11, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Feed.specific_fn: = specific_function %Feed, @Feed(%Eats.facet.e68) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -74,12 +74,12 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %Eats.decl: type = interface_decl @Eats [concrete = constants.%Eats.type] {} {} // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} -// CHECK:STDOUT: impl_decl @A.binding.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @A.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %A.patt: %pattern_type.e10 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc18_15.1 [symbolic = %A.loc18_15.2 (constants.%A)] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A.ref [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %.loc18_26: type = converted %A.ref, %A.as_type [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %A.as_type.loc18_26.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] +// CHECK:STDOUT: %.loc18_26: type = converted %A.ref, %A.as_type.loc18_26.1 [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: %.loc18_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -89,39 +89,39 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: } // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.3ec) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.3ec) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc20_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc20_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.265) = value_param call_param0 -// CHECK:STDOUT: %.loc20_29.1: type = splice_block %.loc20_29.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] { +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.ac3) = value_param call_param0 +// CHECK:STDOUT: %.loc20_29.1: type = splice_block %.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.ac3)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc20_10.2 [symbolic = %T.loc20_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] -// CHECK:STDOUT: %.loc20_29.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] +// CHECK:STDOUT: %T.as_type.loc20_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.ac3)] +// CHECK:STDOUT: %.loc20_29.2: type = converted %T.ref, %T.as_type.loc20_29.2 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.ac3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.265) = value_binding e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc20_29.1 (%T.as_type.ac3) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc22_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.998)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = value_param call_param0 -// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.d11) = value_param call_param0 +// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.d11)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc22_18.2 [symbolic = %T.loc22_18.1 (constants.%T.998)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] +// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.d11)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.d11) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -147,16 +147,16 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @A.binding.as_type.as.Eats.impl(%A.loc18_15.1: %Animal.type) { +// CHECK:STDOUT: generic impl @A.as_type.as.Eats.impl(%A.loc18_15.1: %Animal.type) { // CHECK:STDOUT: %A.loc18_15.2: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc18_15.2 (constants.%A)] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc18_15.2 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(%A.loc18_15.2) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.760d13.1)] +// CHECK:STDOUT: %A.as_type.loc18_26.2: type = facet_access_type %A.loc18_15.2 [symbolic = %A.as_type.loc18_26.2 (constants.%A.as_type)] +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(%A.loc18_15.2) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.149e03.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc18_26 as %Eats.ref { -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.binding.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.1: = impl_witness %Eats.impl_witness_table, @A.binding.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.760d13.1)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @A.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.1: = impl_witness %Eats.impl_witness_table, @A.as_type.as.Eats.impl(constants.%A) [symbolic = %Eats.impl_witness.loc18_36.2 (constants.%Eats.impl_witness.149e03.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Eats.impl_witness.loc18_36.1 @@ -165,13 +165,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc20_10.2: %Eats.type) { // CHECK:STDOUT: %T.loc20_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc20_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc20_10.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.93e)] +// CHECK:STDOUT: %T.as_type.loc20_29.1: type = facet_access_type %T.loc20_10.1 [symbolic = %T.as_type.loc20_29.1 (constants.%T.as_type.ac3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc20_29.1 [symbolic = %pattern_type (constants.%pattern_type.3ec)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.9d9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc20_29.1 [symbolic = %require_complete (constants.%require_complete.8a0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.265)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc20_29.1 (%T.as_type.ac3)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -179,23 +179,23 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc22_18.2: %Animal.type) { // CHECK:STDOUT: %T.loc22_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc22_18.1 (constants.%T.998)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc22_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.892)] +// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_18.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.f0b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.72f)] -// CHECK:STDOUT: %.loc22_43.2: require_specific_def_type = require_specific_def @A.binding.as_type.as.Eats.impl(%T.loc22_18.1) [symbolic = %.loc22_43.2 (constants.%.860)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.04b)] +// CHECK:STDOUT: %.loc22_43.2: require_specific_def_type = require_specific_def @A.as_type.as.Eats.impl(%T.loc22_18.1) [symbolic = %.loc22_43.2 (constants.%.a47)] // CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %T.loc22_18.1, @Eats [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value %T.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.a05)] +// CHECK:STDOUT: %Eats.facet.loc22_43.2: %Eats.type = facet_value %T.as_type.loc22_32.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.e68)] // CHECK:STDOUT: %Feed.specific_fn.loc22_37.2: = specific_function constants.%Feed, @Feed(%Eats.facet.loc22_43.2) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.d11)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = name_ref a, %a -// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.binding.as_type.e4f, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.a05)] -// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.binding.as_type.e4f, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.a05)] -// CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet.a05) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc22_32.1 (%T.as_type.d11) = name_ref a, %a +// CHECK:STDOUT: %Eats.facet.loc22_43.1: %Eats.type = facet_value constants.%T.as_type.d11, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.e68)] +// CHECK:STDOUT: %.loc22_43.1: %Eats.type = converted constants.%T.as_type.d11, %Eats.facet.loc22_43.1 [symbolic = %Eats.facet.loc22_43.2 (constants.%Eats.facet.e68)] +// CHECK:STDOUT: %Feed.specific_fn.loc22_37.1: = specific_function %Feed.ref, @Feed(constants.%Eats.facet.e68) [symbolic = %Feed.specific_fn.loc22_37.2 (constants.%Feed.specific_fn)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc22_37.1(%a.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -209,42 +209,42 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%A) { +// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%A) { // CHECK:STDOUT: %A.loc18_15.2 => constants.%A -// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.760d13.1 +// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%A.as_type +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.149e03.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet.6e5) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Eats.facet.139) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.f11) { // CHECK:STDOUT: %T.loc20_10.1 => constants.%T.f11 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.265 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.93e +// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.ac3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.998) { // CHECK:STDOUT: %T.loc22_18.1 => constants.%T.998 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.e4f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.d11 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.binding.as_type.as.Eats.impl(constants.%T.998) { +// CHECK:STDOUT: specific @A.as_type.as.Eats.impl(constants.%T.998) { // CHECK:STDOUT: %A.loc18_15.2 => constants.%T.998 -// CHECK:STDOUT: %A.binding.as_type => constants.%T.binding.as_type.e4f -// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.760d13.2 +// CHECK:STDOUT: %A.as_type.loc18_26.2 => constants.%T.as_type.d11 +// CHECK:STDOUT: %Eats.impl_witness.loc18_36.2 => constants.%Eats.impl_witness.149e03.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Eats.facet.a05) { -// CHECK:STDOUT: %T.loc20_10.1 => constants.%Eats.facet.a05 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.e4f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: specific @Feed(constants.%Eats.facet.e68) { +// CHECK:STDOUT: %T.loc20_10.1 => constants.%Eats.facet.e68 +// CHECK:STDOUT: %T.as_type.loc20_29.1 => constants.%T.as_type.d11 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.72f +// CHECK:STDOUT: %require_complete => constants.%require_complete.04b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon index c0627455980c..c79b216c45d1 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_generic_facet_value_value.carbon @@ -60,47 +60,47 @@ fn F() { // CHECK:STDOUT: %T.998: %Animal.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %pattern_type.b51: type = pattern_type %Edible.type [concrete] // CHECK:STDOUT: %U: %Edible.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.e4f: type = symbolic_binding_type T, 0, %T.998 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] -// CHECK:STDOUT: %Eats.type.bb4cf6.1: type = facet_type <@Eats, @Eats(%U.binding.as_type)> [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.0150b7.1: = impl_witness @T.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%T.998, %U) [symbolic] -// CHECK:STDOUT: %Self.027: %Eats.type.bb4cf6.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.a2722e.1: = require_complete_type %Eats.type.bb4cf6.1 [symbolic] -// CHECK:STDOUT: %Eats.facet.31f: %Eats.type.bb4cf6.1 = facet_value %T.binding.as_type.e4f, (%Eats.impl_witness.0150b7.1) [symbolic] +// CHECK:STDOUT: %T.as_type.d11: type = facet_access_type %T.998 [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %Eats.type.5eeba5.1: type = facet_type <@Eats, @Eats(%U.as_type)> [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.e8df35.1: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.998, %U) [symbolic] +// CHECK:STDOUT: %Self.0ed: %Eats.type.5eeba5.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.2dfc69.1: = require_complete_type %Eats.type.5eeba5.1 [symbolic] +// CHECK:STDOUT: %Eats.facet.9e6: %Eats.type.5eeba5.1 = facet_value %T.as_type.d11, (%Eats.impl_witness.e8df35.1) [symbolic] // CHECK:STDOUT: %Goat: type = class_type @Goat [concrete] // CHECK:STDOUT: %Animal.impl_witness: = impl_witness @Goat.as.Animal.impl.%Animal.impl_witness_table [concrete] // CHECK:STDOUT: %Animal.facet: %Animal.type = facet_value %Goat, (%Animal.impl_witness) [concrete] // CHECK:STDOUT: %Food.d1c: %Edible.type = symbolic_binding Food, 0 [symbolic] -// CHECK:STDOUT: %Food.binding.as_type.8cc: type = symbolic_binding_type Food, 0, %Food.d1c [symbolic] -// CHECK:STDOUT: %Eats.type.570: type = facet_type <@Eats, @Eats(%Food.binding.as_type.8cc)> [symbolic] -// CHECK:STDOUT: %pattern_type.350: type = pattern_type %Eats.type.570 [symbolic] -// CHECK:STDOUT: %T.2b9: %Eats.type.570 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %Self.a66: %Eats.type.570 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.8ae: type = symbolic_binding_type T, 1, %T.2b9 [symbolic] -// CHECK:STDOUT: %pattern_type.2b9: type = pattern_type %T.binding.as_type.8ae [symbolic] -// CHECK:STDOUT: %pattern_type.12a: type = pattern_type %Food.binding.as_type.8cc [symbolic] +// CHECK:STDOUT: %Food.as_type.098: type = facet_access_type %Food.d1c [symbolic] +// CHECK:STDOUT: %Eats.type.3ac: type = facet_type <@Eats, @Eats(%Food.as_type.098)> [symbolic] +// CHECK:STDOUT: %pattern_type.a18: type = pattern_type %Eats.type.3ac [symbolic] +// CHECK:STDOUT: %T.bd3: %Eats.type.3ac = symbolic_binding T, 1 [symbolic] +// CHECK:STDOUT: %Self.746: %Eats.type.3ac = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %T.as_type.8f9: type = facet_access_type %T.bd3 [symbolic] +// CHECK:STDOUT: %pattern_type.76e: type = pattern_type %T.as_type.8f9 [symbolic] +// CHECK:STDOUT: %pattern_type.a11: type = pattern_type %Food.as_type.098 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.0c1: = require_complete_type %T.binding.as_type.8ae [symbolic] -// CHECK:STDOUT: %require_complete.bd7: = require_complete_type %Food.binding.as_type.8cc [symbolic] +// CHECK:STDOUT: %require_complete.1ba: = require_complete_type %T.as_type.8f9 [symbolic] +// CHECK:STDOUT: %require_complete.2e4: = require_complete_type %Food.as_type.098 [symbolic] // CHECK:STDOUT: %A: %Animal.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %Food.2fc: %Edible.type = symbolic_binding Food, 1 [symbolic] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] -// CHECK:STDOUT: %pattern_type.892: type = pattern_type %A.binding.as_type [symbolic] -// CHECK:STDOUT: %Food.binding.as_type.e7e: type = symbolic_binding_type Food, 1, %Food.2fc [symbolic] -// CHECK:STDOUT: %pattern_type.9ed: type = pattern_type %Food.binding.as_type.e7e [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %A.as_type [symbolic] +// CHECK:STDOUT: %Food.as_type.6c2: type = facet_access_type %Food.2fc [symbolic] +// CHECK:STDOUT: %pattern_type.725: type = pattern_type %Food.as_type.6c2 [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.72f: = require_complete_type %A.binding.as_type [symbolic] -// CHECK:STDOUT: %require_complete.0a9: = require_complete_type %Food.binding.as_type.e7e [symbolic] -// CHECK:STDOUT: %Eats.type.bb4cf6.2: type = facet_type <@Eats, @Eats(%Food.binding.as_type.e7e)> [symbolic] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A, @Eats, @Eats(%Food.binding.as_type.e7e) [symbolic] -// CHECK:STDOUT: %Eats.impl_witness.0150b7.2: = impl_witness @T.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%A, %Food.2fc) [symbolic] -// CHECK:STDOUT: %require_complete.a2722e.2: = require_complete_type %Eats.type.bb4cf6.2 [symbolic] -// CHECK:STDOUT: %.f9e: require_specific_def_type = require_specific_def @T.binding.as_type.as.Eats.impl(%A, %Food.2fc) [symbolic] -// CHECK:STDOUT: %Eats.facet.702: %Eats.type.bb4cf6.2 = facet_value %A.binding.as_type, (%Eats.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %pattern_type.67b: type = pattern_type %Eats.type.bb4cf6.2 [symbolic] -// CHECK:STDOUT: %Feed.specific_fn.1f9: = specific_function %Feed, @Feed(%Food.2fc, %Eats.facet.702) [symbolic] +// CHECK:STDOUT: %require_complete.04b: = require_complete_type %A.as_type [symbolic] +// CHECK:STDOUT: %require_complete.a7e: = require_complete_type %Food.as_type.6c2 [symbolic] +// CHECK:STDOUT: %Eats.type.5eeba5.2: type = facet_type <@Eats, @Eats(%Food.as_type.6c2)> [symbolic] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A, @Eats, @Eats(%Food.as_type.6c2) [symbolic] +// CHECK:STDOUT: %Eats.impl_witness.e8df35.2: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%A, %Food.2fc) [symbolic] +// CHECK:STDOUT: %require_complete.2dfc69.2: = require_complete_type %Eats.type.5eeba5.2 [symbolic] +// CHECK:STDOUT: %.bc9: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A, %Food.2fc) [symbolic] +// CHECK:STDOUT: %Eats.facet.0ae: %Eats.type.5eeba5.2 = facet_value %A.as_type, (%Eats.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %pattern_type.4ed: type = pattern_type %Eats.type.5eeba5.2 [symbolic] +// CHECK:STDOUT: %Feed.specific_fn.4f5: = specific_function %Feed, @Feed(%Food.2fc, %Eats.facet.0ae) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -119,13 +119,13 @@ fn F() { // CHECK:STDOUT: %Destroy.Op.651ba6.3: %Destroy.Op.type.bae255.3 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.bound.f91: = bound_method %.aec, %Destroy.Op.651ba6.3 [concrete] // CHECK:STDOUT: %Eats.type.8c2: type = facet_type <@Eats, @Eats(%Grass)> [concrete] -// CHECK:STDOUT: %Eats.impl_witness.f54: = impl_witness @T.binding.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Eats.impl_witness.d52: = impl_witness @T.as_type.as.Eats.impl.%Eats.impl_witness_table, @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] // CHECK:STDOUT: %Self.ebd: %Eats.type.8c2 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %complete_type.cf8: = complete_type_witness %Eats.type.8c2 [concrete] -// CHECK:STDOUT: %.767: require_specific_def_type = require_specific_def @T.binding.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] -// CHECK:STDOUT: %Eats.facet.a4e: %Eats.type.8c2 = facet_value %Goat, (%Eats.impl_witness.f54) [concrete] +// CHECK:STDOUT: %.db2: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%Animal.facet, %Edible.facet) [concrete] +// CHECK:STDOUT: %Eats.facet.f22: %Eats.type.8c2 = facet_value %Goat, (%Eats.impl_witness.d52) [concrete] // CHECK:STDOUT: %pattern_type.968: type = pattern_type %Eats.type.8c2 [concrete] -// CHECK:STDOUT: %Feed.specific_fn.7dd: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.a4e) [concrete] +// CHECK:STDOUT: %Feed.specific_fn.583: = specific_function %Feed, @Feed(%Edible.facet, %Eats.facet.f22) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -166,18 +166,18 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Food.loc21_20.2: type = symbolic_binding Food, 0 [symbolic = %Food.loc21_20.1 (constants.%Food.67d)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Eats.impl [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Eats.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.b51 = symbolic_binding_pattern U, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc26_15.1 [symbolic = %T.loc26_15.2 (constants.%T.998)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %.loc26_38: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] +// CHECK:STDOUT: %T.as_type.loc26_38.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %.loc26_38: type = converted %T.ref, %T.as_type.loc26_38.1 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.d11)] // CHECK:STDOUT: %Eats.ref: %Eats.type.321 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] // CHECK:STDOUT: %U.ref: %Edible.type = name_ref U, %U.loc26_27.1 [symbolic = %U.loc26_27.2 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc26_49: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %Eats.type.loc26_49.1: type = facet_type <@Eats, @Eats(constants.%U.binding.as_type)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.bb4cf6.1)] +// CHECK:STDOUT: %U.as_type.loc26_49.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc26_49: type = converted %U.ref, %U.as_type.loc26_49.1 [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] +// CHECK:STDOUT: %Eats.type.loc26_49.1: type = facet_type <@Eats, @Eats(constants.%U.as_type)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.5eeba5.1)] // CHECK:STDOUT: %.loc26_18: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] @@ -196,48 +196,48 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 0 [concrete] -// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_25 (%pattern_type.350) = symbolic_binding_pattern T, 1 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_48 (%pattern_type.2b9) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_48 (%pattern_type.2b9) = at_binding_pattern e, %e.param_patt [concrete] -// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_64 (%pattern_type.12a) = value_param_pattern [concrete] -// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_64 (%pattern_type.12a) = at_binding_pattern food, %food.param_patt [concrete] +// CHECK:STDOUT: %T.patt: @Feed.%pattern_type.loc31_25 (%pattern_type.a18) = symbolic_binding_pattern T, 1 [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type.loc31_48 (%pattern_type.76e) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type.loc31_48 (%pattern_type.76e) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @Feed.%pattern_type.loc31_64 (%pattern_type.a11) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @Feed.%pattern_type.loc31_64 (%pattern_type.a11) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc31_16: type = splice_block %Edible.ref [concrete = constants.%Edible.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] // CHECK:STDOUT: } // CHECK:STDOUT: %Food.loc31_13.2: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.d1c)] -// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.570)] { +// CHECK:STDOUT: %.loc31_37.1: type = splice_block %Eats.type.loc31_37.2 [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.3ac)] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: %Eats.type.321 = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.generic] // CHECK:STDOUT: %Food.ref.loc31_33: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.d1c)] -// CHECK:STDOUT: %Food.as_type.loc31_37: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] -// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] -// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.binding.as_type.8cc)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.570)] +// CHECK:STDOUT: %Food.as_type.loc31_37.2: type = facet_access_type %Food.ref.loc31_33 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] +// CHECK:STDOUT: %.loc31_37.2: type = converted %Food.ref.loc31_33, %Food.as_type.loc31_37.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] +// CHECK:STDOUT: %Eats.type.loc31_37.2: type = facet_type <@Eats, @Eats(constants.%Food.as_type.098)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.3ac)] // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.570) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.2b9)] -// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.8ae) = value_param call_param0 -// CHECK:STDOUT: %.loc31_50.1: type = splice_block %.loc31_50.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.8ae)] { -// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.570) = name_ref T, %T.loc31_25.2 [symbolic = %T.loc31_25.1 (constants.%T.2b9)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.8ae)] -// CHECK:STDOUT: %.loc31_50.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.8ae)] +// CHECK:STDOUT: %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.3ac) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.bd3)] +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.8f9) = value_param call_param0 +// CHECK:STDOUT: %.loc31_50.1: type = splice_block %.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.8f9)] { +// CHECK:STDOUT: %T.ref: @Feed.%Eats.type.loc31_37.1 (%Eats.type.3ac) = name_ref T, %T.loc31_25.2 [symbolic = %T.loc31_25.1 (constants.%T.bd3)] +// CHECK:STDOUT: %T.as_type.loc31_50.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.8f9)] +// CHECK:STDOUT: %.loc31_50.2: type = converted %T.ref, %T.as_type.loc31_50.2 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.8f9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.8ae) = value_binding e, %e.param -// CHECK:STDOUT: %food.param: @Feed.%Food.binding.as_type (%Food.binding.as_type.8cc) = value_param call_param1 -// CHECK:STDOUT: %.loc31_66.1: type = splice_block %.loc31_66.2 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] { +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc31_50.1 (%T.as_type.8f9) = value_binding e, %e.param +// CHECK:STDOUT: %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.098) = value_param call_param1 +// CHECK:STDOUT: %.loc31_66.1: type = splice_block %.loc31_66.2 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] { // CHECK:STDOUT: %Food.ref.loc31_66: %Edible.type = name_ref Food, %Food.loc31_13.2 [symbolic = %Food.loc31_13.1 (constants.%Food.d1c)] -// CHECK:STDOUT: %Food.as_type.loc31_66: type = facet_access_type %Food.ref.loc31_66 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] -// CHECK:STDOUT: %.loc31_66.2: type = converted %Food.ref.loc31_66, %Food.as_type.loc31_66 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] +// CHECK:STDOUT: %Food.as_type.loc31_66: type = facet_access_type %Food.ref.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] +// CHECK:STDOUT: %.loc31_66.2: type = converted %Food.ref.loc31_66, %Food.as_type.loc31_66 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @Feed.%Food.binding.as_type (%Food.binding.as_type.8cc) = value_binding food, %food.param +// CHECK:STDOUT: %food: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.098) = value_binding food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %A.patt: %pattern_type.e10 = symbolic_binding_pattern A, 0 [concrete] // CHECK:STDOUT: %Food.patt: %pattern_type.b51 = symbolic_binding_pattern Food, 1 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] -// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ed) = value_param_pattern [concrete] -// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.9ed) = at_binding_pattern food, %food.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type.loc32_45 (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %food.param_patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.725) = value_param_pattern [concrete] +// CHECK:STDOUT: %food.patt: @HandleAnimal.%pattern_type.loc32_54 (%pattern_type.725) = at_binding_pattern food, %food.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc32_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -249,20 +249,20 @@ fn F() { // CHECK:STDOUT: %Edible.ref: type = name_ref Edible, file.%Edible.decl [concrete = constants.%Edible.type] // CHECK:STDOUT: } // CHECK:STDOUT: %Food.loc32_33.2: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.2fc)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%A.binding.as_type (%A.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc32_47.1: type = splice_block %.loc32_47.2 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] { // CHECK:STDOUT: %A.ref: %Animal.type = name_ref A, %A.loc32_18.2 [symbolic = %A.loc32_18.1 (constants.%A)] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A.ref [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %.loc32_47.2: type = converted %A.ref, %A.as_type [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] +// CHECK:STDOUT: %A.as_type.loc32_47.2: type = facet_access_type %A.ref [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] +// CHECK:STDOUT: %.loc32_47.2: type = converted %A.ref, %A.as_type.loc32_47.2 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%A.binding.as_type (%A.binding.as_type) = value_binding a, %a.param -// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.e7e) = value_param call_param1 -// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.e7e)] { +// CHECK:STDOUT: %a: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.6c2) = value_param call_param1 +// CHECK:STDOUT: %.loc32_56.1: type = splice_block %.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.6c2)] { // CHECK:STDOUT: %Food.ref: %Edible.type = name_ref Food, %Food.loc32_33.2 [symbolic = %Food.loc32_33.1 (constants.%Food.2fc)] -// CHECK:STDOUT: %Food.as_type: type = facet_access_type %Food.ref [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.e7e)] -// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.e7e)] +// CHECK:STDOUT: %Food.as_type.loc32_56.2: type = facet_access_type %Food.ref [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.6c2)] +// CHECK:STDOUT: %.loc32_56.2: type = converted %Food.ref, %Food.as_type.loc32_56.2 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.6c2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %food: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.e7e) = value_binding food, %food.param +// CHECK:STDOUT: %food: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.6c2) = value_binding food, %food.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -316,20 +316,20 @@ fn F() { // CHECK:STDOUT: witness = %Edible.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.Eats.impl(%T.loc26_15.1: %Animal.type, %U.loc26_27.1: %Edible.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.Eats.impl(%T.loc26_15.1: %Animal.type, %U.loc26_27.1: %Edible.type) { // CHECK:STDOUT: %T.loc26_15.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc26_15.2 (constants.%T.998)] // CHECK:STDOUT: %U.loc26_27.2: %Edible.type = symbolic_binding U, 1 [symbolic = %U.loc26_27.2 (constants.%U)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc26_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc26_27.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %Eats.type.loc26_49.2: type = facet_type <@Eats, @Eats(%U.binding.as_type)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.bb4cf6.1)] -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2: = impl_witness %Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(%T.loc26_15.2, %U.loc26_27.2) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.0150b7.1)] +// CHECK:STDOUT: %T.as_type.loc26_38.2: type = facet_access_type %T.loc26_15.2 [symbolic = %T.as_type.loc26_38.2 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %U.as_type.loc26_49.2: type = facet_access_type %U.loc26_27.2 [symbolic = %U.as_type.loc26_49.2 (constants.%U.as_type)] +// CHECK:STDOUT: %Eats.type.loc26_49.2: type = facet_type <@Eats, @Eats(%U.as_type.loc26_49.2)> [symbolic = %Eats.type.loc26_49.2 (constants.%Eats.type.5eeba5.1)] +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(%T.loc26_15.2, %U.loc26_27.2) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.e8df35.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.a2722e.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Eats.type.loc26_49.2 [symbolic = %require_complete (constants.%require_complete.2dfc69.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc26_38 as %Eats.type.loc26_49.1 { -// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Eats.impl [concrete] -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.1: = impl_witness %Eats.impl_witness_table, @T.binding.as_type.as.Eats.impl(constants.%T.998, constants.%U) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.0150b7.1)] +// CHECK:STDOUT: %Eats.impl_witness_table = impl_witness_table (), @T.as_type.as.Eats.impl [concrete] +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.1: = impl_witness %Eats.impl_witness_table, @T.as_type.as.Eats.impl(constants.%T.998, constants.%U) [symbolic = %Eats.impl_witness.loc26_51.2 (constants.%Eats.impl_witness.e8df35.1)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Eats.impl_witness.loc26_51.1 @@ -360,21 +360,21 @@ fn F() { // CHECK:STDOUT: .Self = constants.%Goat // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Feed(%Food.loc31_13.2: %Edible.type, %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.570)) { +// CHECK:STDOUT: generic fn @Feed(%Food.loc31_13.2: %Edible.type, %T.loc31_25.2: @Feed.%Eats.type.loc31_37.1 (%Eats.type.3ac)) { // CHECK:STDOUT: %Food.loc31_13.1: %Edible.type = symbolic_binding Food, 0 [symbolic = %Food.loc31_13.1 (constants.%Food.d1c)] -// CHECK:STDOUT: %Food.binding.as_type: type = symbolic_binding_type Food, 0, %Food.loc31_13.1 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.8cc)] -// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(%Food.binding.as_type)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.570)] -// CHECK:STDOUT: %T.loc31_25.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.570) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.2b9)] -// CHECK:STDOUT: %pattern_type.loc31_25: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_25 (constants.%pattern_type.350)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 1, %T.loc31_25.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.8ae)] -// CHECK:STDOUT: %pattern_type.loc31_48: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc31_48 (constants.%pattern_type.2b9)] -// CHECK:STDOUT: %pattern_type.loc31_64: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc31_64 (constants.%pattern_type.12a)] +// CHECK:STDOUT: %Food.as_type.loc31_37.1: type = facet_access_type %Food.loc31_13.1 [symbolic = %Food.as_type.loc31_37.1 (constants.%Food.as_type.098)] +// CHECK:STDOUT: %Eats.type.loc31_37.1: type = facet_type <@Eats, @Eats(%Food.as_type.loc31_37.1)> [symbolic = %Eats.type.loc31_37.1 (constants.%Eats.type.3ac)] +// CHECK:STDOUT: %T.loc31_25.1: @Feed.%Eats.type.loc31_37.1 (%Eats.type.3ac) = symbolic_binding T, 1 [symbolic = %T.loc31_25.1 (constants.%T.bd3)] +// CHECK:STDOUT: %pattern_type.loc31_25: type = pattern_type %Eats.type.loc31_37.1 [symbolic = %pattern_type.loc31_25 (constants.%pattern_type.a18)] +// CHECK:STDOUT: %T.as_type.loc31_50.1: type = facet_access_type %T.loc31_25.1 [symbolic = %T.as_type.loc31_50.1 (constants.%T.as_type.8f9)] +// CHECK:STDOUT: %pattern_type.loc31_48: type = pattern_type %T.as_type.loc31_50.1 [symbolic = %pattern_type.loc31_48 (constants.%pattern_type.76e)] +// CHECK:STDOUT: %pattern_type.loc31_64: type = pattern_type %Food.as_type.loc31_37.1 [symbolic = %pattern_type.loc31_64 (constants.%pattern_type.a11)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_48: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc31_48 (constants.%require_complete.0c1)] -// CHECK:STDOUT: %require_complete.loc31_64: = require_complete_type %Food.binding.as_type [symbolic = %require_complete.loc31_64 (constants.%require_complete.bd7)] +// CHECK:STDOUT: %require_complete.loc31_48: = require_complete_type %T.as_type.loc31_50.1 [symbolic = %require_complete.loc31_48 (constants.%require_complete.1ba)] +// CHECK:STDOUT: %require_complete.loc31_64: = require_complete_type %Food.as_type.loc31_37.1 [symbolic = %require_complete.loc31_64 (constants.%require_complete.2e4)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.8ae), %food.param: @Feed.%Food.binding.as_type (%Food.binding.as_type.8cc)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc31_50.1 (%T.as_type.8f9), %food.param: @Feed.%Food.as_type.loc31_37.1 (%Food.as_type.098)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -383,29 +383,29 @@ fn F() { // CHECK:STDOUT: generic fn @HandleAnimal(%A.loc32_18.2: %Animal.type, %Food.loc32_33.2: %Edible.type) { // CHECK:STDOUT: %A.loc32_18.1: %Animal.type = symbolic_binding A, 0 [symbolic = %A.loc32_18.1 (constants.%A)] // CHECK:STDOUT: %Food.loc32_33.1: %Edible.type = symbolic_binding Food, 1 [symbolic = %Food.loc32_33.1 (constants.%Food.2fc)] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc32_18.1 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc32_45: type = pattern_type %A.binding.as_type [symbolic = %pattern_type.loc32_45 (constants.%pattern_type.892)] -// CHECK:STDOUT: %Food.binding.as_type: type = symbolic_binding_type Food, 1, %Food.loc32_33.1 [symbolic = %Food.binding.as_type (constants.%Food.binding.as_type.e7e)] -// CHECK:STDOUT: %pattern_type.loc32_54: type = pattern_type %Food.binding.as_type [symbolic = %pattern_type.loc32_54 (constants.%pattern_type.9ed)] +// CHECK:STDOUT: %A.as_type.loc32_47.1: type = facet_access_type %A.loc32_18.1 [symbolic = %A.as_type.loc32_47.1 (constants.%A.as_type)] +// CHECK:STDOUT: %pattern_type.loc32_45: type = pattern_type %A.as_type.loc32_47.1 [symbolic = %pattern_type.loc32_45 (constants.%pattern_type.f0b)] +// CHECK:STDOUT: %Food.as_type.loc32_56.1: type = facet_access_type %Food.loc32_33.1 [symbolic = %Food.as_type.loc32_56.1 (constants.%Food.as_type.6c2)] +// CHECK:STDOUT: %pattern_type.loc32_54: type = pattern_type %Food.as_type.loc32_56.1 [symbolic = %pattern_type.loc32_54 (constants.%pattern_type.725)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.binding.as_type [symbolic = %require_complete.loc32_45 (constants.%require_complete.72f)] -// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.binding.as_type [symbolic = %require_complete.loc32_54 (constants.%require_complete.0a9)] -// CHECK:STDOUT: %.loc32_76.3: require_specific_def_type = require_specific_def @T.binding.as_type.as.Eats.impl(%A.loc32_18.1, %Food.loc32_33.1) [symbolic = %.loc32_76.3 (constants.%.f9e)] -// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.binding.as_type)> [symbolic = %Eats.type (constants.%Eats.type.bb4cf6.2)] -// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A.loc32_18.1, @Eats, @Eats(%Food.binding.as_type) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] -// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.bb4cf6.2) = facet_value %A.binding.as_type, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.702)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_33.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.1f9)] +// CHECK:STDOUT: %require_complete.loc32_45: = require_complete_type %A.as_type.loc32_47.1 [symbolic = %require_complete.loc32_45 (constants.%require_complete.04b)] +// CHECK:STDOUT: %require_complete.loc32_54: = require_complete_type %Food.as_type.loc32_56.1 [symbolic = %require_complete.loc32_54 (constants.%require_complete.a7e)] +// CHECK:STDOUT: %.loc32_76.3: require_specific_def_type = require_specific_def @T.as_type.as.Eats.impl(%A.loc32_18.1, %Food.loc32_33.1) [symbolic = %.loc32_76.3 (constants.%.bc9)] +// CHECK:STDOUT: %Eats.type: type = facet_type <@Eats, @Eats(%Food.as_type.loc32_56.1)> [symbolic = %Eats.type (constants.%Eats.type.5eeba5.2)] +// CHECK:STDOUT: %Eats.lookup_impl_witness: = lookup_impl_witness %A.loc32_18.1, @Eats, @Eats(%Food.as_type.loc32_56.1) [symbolic = %Eats.lookup_impl_witness (constants.%Eats.lookup_impl_witness)] +// CHECK:STDOUT: %Eats.facet.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.5eeba5.2) = facet_value %A.as_type.loc32_47.1, (%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.0ae)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2: = specific_function constants.%Feed, @Feed(%Food.loc32_33.1, %Eats.facet.loc32_76.2) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.4f5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%A.binding.as_type (%A.binding.as_type), %food.param: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.e7e)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type), %food.param: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.6c2)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%A.binding.as_type (%A.binding.as_type) = name_ref a, %a -// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.binding.as_type (%Food.binding.as_type.e7e) = name_ref food, %food -// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.binding.as_type.e7e, constants.%Food.2fc [symbolic = %Food.loc32_33.1 (constants.%Food.2fc)] -// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.bb4cf6.2) = facet_value constants.%A.binding.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.702)] -// CHECK:STDOUT: %.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.bb4cf6.2) = converted constants.%A.binding.as_type, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.702)] -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.2fc, constants.%Eats.facet.702) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.1f9)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%A.as_type.loc32_47.1 (%A.as_type) = name_ref a, %a +// CHECK:STDOUT: %food.ref: @HandleAnimal.%Food.as_type.loc32_56.1 (%Food.as_type.6c2) = name_ref food, %food +// CHECK:STDOUT: %.loc32_76.1: %Edible.type = converted constants.%Food.as_type.6c2, constants.%Food.2fc [symbolic = %Food.loc32_33.1 (constants.%Food.2fc)] +// CHECK:STDOUT: %Eats.facet.loc32_76.1: @HandleAnimal.%Eats.type (%Eats.type.5eeba5.2) = facet_value constants.%A.as_type, (constants.%Eats.lookup_impl_witness) [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.0ae)] +// CHECK:STDOUT: %.loc32_76.2: @HandleAnimal.%Eats.type (%Eats.type.5eeba5.2) = converted constants.%A.as_type, %Eats.facet.loc32_76.1 [symbolic = %Eats.facet.loc32_76.2 (constants.%Eats.facet.0ae)] +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.1: = specific_function %Feed.ref, @Feed(constants.%Food.2fc, constants.%Eats.facet.0ae) [symbolic = %Feed.specific_fn.loc32_64.2 (constants.%Feed.specific_fn.4f5)] // CHECK:STDOUT: %Feed.call: init %empty_tuple.type = call %Feed.specific_fn.loc32_64.1(%a.ref, %food.ref) // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -469,28 +469,28 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.67d, constants.%Self.857) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%U.binding.as_type) { -// CHECK:STDOUT: %Food.loc21_20.1 => constants.%U.binding.as_type +// CHECK:STDOUT: specific @Eats(constants.%U.as_type) { +// CHECK:STDOUT: %Food.loc21_20.1 => constants.%U.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.bb4cf6.1 -// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.027 +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.5eeba5.1 +// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.0ed // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%T.998, constants.%U) { +// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%T.998, constants.%U) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%T.998 // CHECK:STDOUT: %U.loc26_27.2 => constants.%U -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.e4f -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.bb4cf6.1 -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.0150b7.1 +// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%T.as_type.d11 +// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%U.as_type +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.5eeba5.1 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.e8df35.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.binding.as_type, constants.%Self.857) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Self.857) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.binding.as_type, constants.%Eats.facet.31f) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%U.as_type, constants.%Eats.facet.9e6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -498,94 +498,94 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.binding.as_type.8cc) { -// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.binding.as_type.8cc +// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.098) { +// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.098 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Eats.type => constants.%Eats.type.570 -// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.a66 +// CHECK:STDOUT: %Eats.type => constants.%Eats.type.3ac +// CHECK:STDOUT: %Self.loc21_29.2 => constants.%Self.746 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.binding.as_type.8cc, constants.%Self.857) { +// CHECK:STDOUT: specific @Eats.WithSelf(constants.%Food.as_type.098, constants.%Self.857) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.d1c, constants.%T.2b9) { +// CHECK:STDOUT: specific @Feed(constants.%Food.d1c, constants.%T.bd3) { // CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.d1c -// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.8cc -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.570 -// CHECK:STDOUT: %T.loc31_25.1 => constants.%T.2b9 -// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.350 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.8ae -// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.2b9 -// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.12a +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.098 +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.3ac +// CHECK:STDOUT: %T.loc31_25.1 => constants.%T.bd3 +// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.a18 +// CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%T.as_type.8f9 +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.76e +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.a11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%A, constants.%Food.2fc) { // CHECK:STDOUT: %A.loc32_18.1 => constants.%A // CHECK:STDOUT: %Food.loc32_33.1 => constants.%Food.2fc -// CHECK:STDOUT: %A.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.892 -// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.e7e -// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.9ed +// CHECK:STDOUT: %A.as_type.loc32_47.1 => constants.%A.as_type +// CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.f0b +// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Food.as_type.6c2 +// CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.725 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Eats(constants.%Food.binding.as_type.e7e) { -// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.binding.as_type.e7e +// CHECK:STDOUT: specific @Eats(constants.%Food.as_type.6c2) { +// CHECK:STDOUT: %Food.loc21_20.1 => constants.%Food.as_type.6c2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%A, constants.%Food.2fc) { +// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%A, constants.%Food.2fc) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%A // CHECK:STDOUT: %U.loc26_27.2 => constants.%Food.2fc -// CHECK:STDOUT: %T.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %U.binding.as_type => constants.%Food.binding.as_type.e7e -// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.bb4cf6.2 -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.0150b7.2 +// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%A.as_type +// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Food.as_type.6c2 +// CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.5eeba5.2 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.e8df35.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.a2722e.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.2dfc69.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Food.2fc, constants.%Eats.facet.702) { +// CHECK:STDOUT: specific @Feed(constants.%Food.2fc, constants.%Eats.facet.0ae) { // CHECK:STDOUT: %Food.loc31_13.1 => constants.%Food.2fc -// CHECK:STDOUT: %Food.binding.as_type => constants.%Food.binding.as_type.e7e -// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.bb4cf6.2 -// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.702 -// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.67b -// CHECK:STDOUT: %T.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.892 -// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.9ed +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Food.as_type.6c2 +// CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.5eeba5.2 +// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.0ae +// CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.4ed +// CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%A.as_type +// CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.f0b +// CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.725 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc31_48 => constants.%require_complete.72f -// CHECK:STDOUT: %require_complete.loc31_64 => constants.%require_complete.0a9 +// CHECK:STDOUT: %require_complete.loc31_48 => constants.%require_complete.04b +// CHECK:STDOUT: %require_complete.loc31_64 => constants.%require_complete.a7e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet, constants.%Edible.facet) { // CHECK:STDOUT: %A.loc32_18.1 => constants.%Animal.facet // CHECK:STDOUT: %Food.loc32_33.1 => constants.%Edible.facet -// CHECK:STDOUT: %A.binding.as_type => constants.%Goat +// CHECK:STDOUT: %A.as_type.loc32_47.1 => constants.%Goat // CHECK:STDOUT: %pattern_type.loc32_45 => constants.%pattern_type.234 -// CHECK:STDOUT: %Food.binding.as_type => constants.%Grass +// CHECK:STDOUT: %Food.as_type.loc32_56.1 => constants.%Grass // CHECK:STDOUT: %pattern_type.loc32_54 => constants.%pattern_type.df6 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc32_45 => constants.%complete_type.357 // CHECK:STDOUT: %require_complete.loc32_54 => constants.%complete_type.357 -// CHECK:STDOUT: %.loc32_76.3 => constants.%.767 +// CHECK:STDOUT: %.loc32_76.3 => constants.%.db2 // CHECK:STDOUT: %Eats.type => constants.%Eats.type.8c2 -// CHECK:STDOUT: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.f54 -// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.a4e -// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.7dd +// CHECK:STDOUT: %Eats.lookup_impl_witness => constants.%Eats.impl_witness.d52 +// CHECK:STDOUT: %Eats.facet.loc32_76.2 => constants.%Eats.facet.f22 +// CHECK:STDOUT: %Feed.specific_fn.loc32_64.2 => constants.%Feed.specific_fn.583 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Eats.impl(constants.%Animal.facet, constants.%Edible.facet) { +// CHECK:STDOUT: specific @T.as_type.as.Eats.impl(constants.%Animal.facet, constants.%Edible.facet) { // CHECK:STDOUT: %T.loc26_15.2 => constants.%Animal.facet // CHECK:STDOUT: %U.loc26_27.2 => constants.%Edible.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%Goat -// CHECK:STDOUT: %U.binding.as_type => constants.%Grass +// CHECK:STDOUT: %T.as_type.loc26_38.2 => constants.%Goat +// CHECK:STDOUT: %U.as_type.loc26_49.2 => constants.%Grass // CHECK:STDOUT: %Eats.type.loc26_49.2 => constants.%Eats.type.8c2 -// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.f54 +// CHECK:STDOUT: %Eats.impl_witness.loc26_51.2 => constants.%Eats.impl_witness.d52 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.cf8 @@ -603,13 +603,13 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.a4e) { +// CHECK:STDOUT: specific @Feed(constants.%Edible.facet, constants.%Eats.facet.f22) { // CHECK:STDOUT: %Food.loc31_13.1 => constants.%Edible.facet -// CHECK:STDOUT: %Food.binding.as_type => constants.%Grass +// CHECK:STDOUT: %Food.as_type.loc31_37.1 => constants.%Grass // CHECK:STDOUT: %Eats.type.loc31_37.1 => constants.%Eats.type.8c2 -// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.a4e +// CHECK:STDOUT: %T.loc31_25.1 => constants.%Eats.facet.f22 // CHECK:STDOUT: %pattern_type.loc31_25 => constants.%pattern_type.968 -// CHECK:STDOUT: %T.binding.as_type => constants.%Goat +// CHECK:STDOUT: %T.as_type.loc31_50.1 => constants.%Goat // CHECK:STDOUT: %pattern_type.loc31_48 => constants.%pattern_type.234 // CHECK:STDOUT: %pattern_type.loc31_64 => constants.%pattern_type.df6 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon index 5113b193d694..5fb91b6ac994 100644 --- a/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon +++ b/toolchain/check/testdata/facet/convert_facet_value_value_to_itself.carbon @@ -34,12 +34,12 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.e10: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %T: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.892: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %FeedAnimal.type: type = fn_type @FeedAnimal [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %FeedAnimal: %FeedAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] // CHECK:STDOUT: %FeedAnimal.specific_fn.ae9: = specific_function %FeedAnimal, @FeedAnimal(%T) [symbolic] @@ -84,39 +84,39 @@ fn F() { // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %FeedAnimal.decl: %FeedAnimal.type = fn_decl @FeedAnimal [concrete = constants.%FeedAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @FeedAnimal.%pattern_type (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @FeedAnimal.%pattern_type (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc17_19: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc17_16.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %a.param: @FeedAnimal.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_37.1: type = splice_block %.loc17_37.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %a.param: @FeedAnimal.%T.as_type.loc17_37.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_37.1: type = splice_block %.loc17_37.2 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc17_16.2 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc17_37.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc17_37.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc17_37.2: type = converted %T.ref, %T.as_type.loc17_37.2 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @FeedAnimal.%T.binding.as_type (%T.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @FeedAnimal.%T.as_type.loc17_37.1 (%T.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc19_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc19_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc19_32.1: type = splice_block %.loc19_32.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc19_32.1: type = splice_block %.loc19_32.2 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc19_18.2 [symbolic = %T.loc19_18.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc19_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc19_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc19_32.2: type = converted %T.ref, %T.as_type.loc19_32.2 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: %Goat.decl: type = class_decl @Goat [concrete = constants.%Goat] {} {} // CHECK:STDOUT: impl_decl @Goat.as.Animal.impl [concrete] {} { @@ -155,13 +155,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @FeedAnimal(%T.loc17_16.2: %Animal.type) { // CHECK:STDOUT: %T.loc17_16.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc17_16.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc17_16.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.892)] +// CHECK:STDOUT: %T.as_type.loc17_37.1: type = facet_access_type %T.loc17_16.1 [symbolic = %T.as_type.loc17_37.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc17_37.1 [symbolic = %pattern_type (constants.%pattern_type.f0b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc17_37.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%a.param: @FeedAnimal.%T.as_type.loc17_37.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -169,18 +169,18 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc19_18.2: %Animal.type) { // CHECK:STDOUT: %T.loc19_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc19_18.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc19_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.892)] +// CHECK:STDOUT: %T.as_type.loc19_32.1: type = facet_access_type %T.loc19_18.1 [symbolic = %T.as_type.loc19_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc19_32.1 [symbolic = %pattern_type (constants.%pattern_type.f0b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc19_32.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.2: = specific_function constants.%FeedAnimal, @FeedAnimal(%T.loc19_18.1) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.ae9)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %FeedAnimal.ref: %FeedAnimal.type = name_ref FeedAnimal, file.%FeedAnimal.decl [concrete = constants.%FeedAnimal] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type) = name_ref a, %a -// CHECK:STDOUT: %.loc19_49: %Animal.type = converted constants.%T.binding.as_type, constants.%T [symbolic = %T.loc19_18.1 (constants.%T)] +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc19_32.1 (%T.as_type) = name_ref a, %a +// CHECK:STDOUT: %.loc19_49: %Animal.type = converted constants.%T.as_type, constants.%T [symbolic = %T.loc19_18.1 (constants.%T)] // CHECK:STDOUT: %FeedAnimal.specific_fn.loc19_37.1: = specific_function %FeedAnimal.ref, @FeedAnimal(constants.%T) [symbolic = %FeedAnimal.specific_fn.loc19_37.2 (constants.%FeedAnimal.specific_fn.ae9)] // CHECK:STDOUT: %FeedAnimal.call: init %empty_tuple.type = call %FeedAnimal.specific_fn.loc19_37.1(%a.ref) // CHECK:STDOUT: return @@ -218,8 +218,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%T) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%require_complete @@ -227,8 +227,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T) { // CHECK:STDOUT: %T.loc19_18.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Animal.WithSelf(constants.%Animal.facet) { @@ -237,7 +237,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc19_18.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%Goat +// CHECK:STDOUT: %T.as_type.loc19_32.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.234 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -247,7 +247,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @FeedAnimal(constants.%Animal.facet) { // CHECK:STDOUT: %T.loc17_16.1 => constants.%Animal.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%Goat +// CHECK:STDOUT: %T.as_type.loc17_37.1 => constants.%Goat // CHECK:STDOUT: %pattern_type => constants.%pattern_type.234 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/facet_assoc_const.carbon b/toolchain/check/testdata/facet/facet_assoc_const.carbon index a4eabb44b185..21cce91655c7 100644 --- a/toolchain/check/testdata/facet/facet_assoc_const.carbon +++ b/toolchain/check/testdata/facet/facet_assoc_const.carbon @@ -649,7 +649,7 @@ fn F(unused T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: %assoc2: %M.assoc_type = assoc_entity element2, @M.WithSelf.%Z [concrete] // CHECK:STDOUT: %.Self.b4d: %M.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.b4d [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.b4d [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.b4d, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %M.lookup_impl_witness, element1 [symbolic_self] @@ -668,29 +668,29 @@ fn F(unused T:! I & J where .I1 = .J1.I2) {} // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_25: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type.loc13_25: type = facet_access_type %.Self.ref.loc13_25 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_25: type = converted %.Self.ref.loc13_25, %.Self.as_type.loc13_25 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_25: type = facet_access_type %.Self.ref.loc13_25 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_25: type = converted %.Self.ref.loc13_25, %.Self.as_type.loc13_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_25: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_25: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.Self.ref.loc13_30: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type.loc13_30: type = facet_access_type %.Self.ref.loc13_30 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_30: type = converted %.Self.ref.loc13_30, %.Self.as_type.loc13_30 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_30: type = facet_access_type %.Self.ref.loc13_30 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_30: type = converted %.Self.ref.loc13_30, %.Self.as_type.loc13_30 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_30: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_30: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_37: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type.loc13_37: type = facet_access_type %.Self.ref.loc13_37 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_37: type = converted %.Self.ref.loc13_37, %.Self.as_type.loc13_37 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_37: type = facet_access_type %.Self.ref.loc13_37 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_37: type = converted %.Self.ref.loc13_37, %.Self.as_type.loc13_37 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_37: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_37: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_42: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type.loc13_42: type = facet_access_type %.Self.ref.loc13_42 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_42: type = converted %.Self.ref.loc13_42, %.Self.as_type.loc13_42 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_42: type = facet_access_type %.Self.ref.loc13_42 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_42: type = converted %.Self.ref.loc13_42, %.Self.as_type.loc13_42 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_42: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_42: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc13_42, %impl.elem1.loc13_30 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_49: %M.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type.loc13_49: type = facet_access_type %.Self.ref.loc13_49 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_49: type = converted %.Self.ref.loc13_49, %.Self.as_type.loc13_49 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_49: type = facet_access_type %.Self.ref.loc13_49 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_49: type = converted %.Self.ref.loc13_49, %.Self.as_type.loc13_49 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc2 [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%M.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %.loc13_55.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon index e72cd563b30c..2e86d927abc2 100644 --- a/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon +++ b/toolchain/check/testdata/facet/fail_convert_facet_value_to_missing_impl.carbon @@ -37,18 +37,18 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.0dc: type = pattern_type %Eats.type [concrete] // CHECK:STDOUT: %T.f11: %Eats.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.265: type = symbolic_binding_type T, 0, %T.f11 [symbolic] -// CHECK:STDOUT: %pattern_type.93e: type = pattern_type %T.binding.as_type.265 [symbolic] +// CHECK:STDOUT: %T.as_type.ac3: type = facet_access_type %T.f11 [symbolic] +// CHECK:STDOUT: %pattern_type.3ec: type = pattern_type %T.as_type.ac3 [symbolic] // CHECK:STDOUT: %Feed.type: type = fn_type @Feed [concrete] // CHECK:STDOUT: %Feed: %Feed.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.9d9: = require_complete_type %T.binding.as_type.265 [symbolic] +// CHECK:STDOUT: %require_complete.8a0: = require_complete_type %T.as_type.ac3 [symbolic] // CHECK:STDOUT: %pattern_type.e10: type = pattern_type %Animal.type [concrete] // CHECK:STDOUT: %T.998: %Animal.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.e4f: type = symbolic_binding_type T, 0, %T.998 [symbolic] -// CHECK:STDOUT: %pattern_type.892: type = pattern_type %T.binding.as_type.e4f [symbolic] +// CHECK:STDOUT: %T.as_type.d11: type = facet_access_type %T.998 [symbolic] +// CHECK:STDOUT: %pattern_type.f0b: type = pattern_type %T.as_type.d11 [symbolic] // CHECK:STDOUT: %HandleAnimal.type: type = fn_type @HandleAnimal [concrete] // CHECK:STDOUT: %HandleAnimal: %HandleAnimal.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.72f: = require_complete_type %T.binding.as_type.e4f [symbolic] +// CHECK:STDOUT: %require_complete.04b: = require_complete_type %T.as_type.d11 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -71,39 +71,39 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: %Animal.decl: type = interface_decl @Animal [concrete = constants.%Animal.type] {} {} // CHECK:STDOUT: %Feed.decl: %Feed.type = fn_decl @Feed [concrete = constants.%Feed] { // CHECK:STDOUT: %T.patt: %pattern_type.0dc = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.93e) = value_param_pattern [concrete] -// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.93e) = at_binding_pattern e, %e.param_patt [concrete] +// CHECK:STDOUT: %e.param_patt: @Feed.%pattern_type (%pattern_type.3ec) = value_param_pattern [concrete] +// CHECK:STDOUT: %e.patt: @Feed.%pattern_type (%pattern_type.3ec) = at_binding_pattern e, %e.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc18_13: type = splice_block %Eats.ref [concrete = constants.%Eats.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Eats.ref: type = name_ref Eats, file.%Eats.decl [concrete = constants.%Eats.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc18_10.2: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %e.param: @Feed.%T.binding.as_type (%T.binding.as_type.265) = value_param call_param0 -// CHECK:STDOUT: %.loc18_29.1: type = splice_block %.loc18_29.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] { +// CHECK:STDOUT: %e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.ac3) = value_param call_param0 +// CHECK:STDOUT: %.loc18_29.1: type = splice_block %.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.ac3)] { // CHECK:STDOUT: %T.ref: %Eats.type = name_ref T, %T.loc18_10.2 [symbolic = %T.loc18_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] -// CHECK:STDOUT: %.loc18_29.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] +// CHECK:STDOUT: %T.as_type.loc18_29.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.ac3)] +// CHECK:STDOUT: %.loc18_29.2: type = converted %T.ref, %T.as_type.loc18_29.2 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.ac3)] // CHECK:STDOUT: } -// CHECK:STDOUT: %e: @Feed.%T.binding.as_type (%T.binding.as_type.265) = value_binding e, %e.param +// CHECK:STDOUT: %e: @Feed.%T.as_type.loc18_29.1 (%T.as_type.ac3) = value_binding e, %e.param // CHECK:STDOUT: } // CHECK:STDOUT: %HandleAnimal.decl: %HandleAnimal.type = fn_decl @HandleAnimal [concrete = constants.%HandleAnimal] { // CHECK:STDOUT: %T.patt: %pattern_type.e10 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.892) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.892) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @HandleAnimal.%pattern_type (%pattern_type.f0b) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc27_21: type = splice_block %Animal.ref [concrete = constants.%Animal.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Animal.ref: type = name_ref Animal, file.%Animal.decl [concrete = constants.%Animal.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc27_18.2: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.998)] -// CHECK:STDOUT: %a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = value_param call_param0 -// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] { +// CHECK:STDOUT: %a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.d11) = value_param call_param0 +// CHECK:STDOUT: %.loc27_32.1: type = splice_block %.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.d11)] { // CHECK:STDOUT: %T.ref: %Animal.type = name_ref T, %T.loc27_18.2 [symbolic = %T.loc27_18.1 (constants.%T.998)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] +// CHECK:STDOUT: %T.as_type.loc27_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %.loc27_32.2: type = converted %T.ref, %T.as_type.loc27_32.2 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.d11)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = value_binding a, %a.param +// CHECK:STDOUT: %a: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.d11) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -131,13 +131,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Feed(%T.loc18_10.2: %Eats.type) { // CHECK:STDOUT: %T.loc18_10.1: %Eats.type = symbolic_binding T, 0 [symbolic = %T.loc18_10.1 (constants.%T.f11)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc18_10.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.265)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.93e)] +// CHECK:STDOUT: %T.as_type.loc18_29.1: type = facet_access_type %T.loc18_10.1 [symbolic = %T.as_type.loc18_29.1 (constants.%T.as_type.ac3)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc18_29.1 [symbolic = %pattern_type (constants.%pattern_type.3ec)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.9d9)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc18_29.1 [symbolic = %require_complete (constants.%require_complete.8a0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%e.param: @Feed.%T.binding.as_type (%T.binding.as_type.265)) { +// CHECK:STDOUT: fn(%e.param: @Feed.%T.as_type.loc18_29.1 (%T.as_type.ac3)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -145,16 +145,16 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HandleAnimal(%T.loc27_18.2: %Animal.type) { // CHECK:STDOUT: %T.loc27_18.1: %Animal.type = symbolic_binding T, 0 [symbolic = %T.loc27_18.1 (constants.%T.998)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc27_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e4f)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.892)] +// CHECK:STDOUT: %T.as_type.loc27_32.1: type = facet_access_type %T.loc27_18.1 [symbolic = %T.as_type.loc27_32.1 (constants.%T.as_type.d11)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc27_32.1 [symbolic = %pattern_type (constants.%pattern_type.f0b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.72f)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc27_32.1 [symbolic = %require_complete (constants.%require_complete.04b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f)) { +// CHECK:STDOUT: fn(%a.param: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.d11)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Feed.ref: %Feed.type = name_ref Feed, file.%Feed.decl [concrete = constants.%Feed] -// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.binding.as_type (%T.binding.as_type.e4f) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @HandleAnimal.%T.as_type.loc27_32.1 (%T.as_type.d11) = name_ref a, %a // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -169,13 +169,13 @@ fn HandleAnimal[T:! Animal](a: T) { Feed(a); } // CHECK:STDOUT: // CHECK:STDOUT: specific @Feed(constants.%T.f11) { // CHECK:STDOUT: %T.loc18_10.1 => constants.%T.f11 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.265 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.93e +// CHECK:STDOUT: %T.as_type.loc18_29.1 => constants.%T.as_type.ac3 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3ec // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HandleAnimal(constants.%T.998) { // CHECK:STDOUT: %T.loc27_18.1 => constants.%T.998 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.e4f -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.892 +// CHECK:STDOUT: %T.as_type.loc27_32.1 => constants.%T.as_type.d11 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f0b // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/period_self.carbon b/toolchain/check/testdata/facet/period_self.carbon index 2122b1b8b196..e9cc5ccbf3cf 100644 --- a/toolchain/check/testdata/facet/period_self.carbon +++ b/toolchain/check/testdata/facet/period_self.carbon @@ -486,23 +486,23 @@ fn F() { // CHECK:STDOUT: %Self.fdb: %I.type.1ab = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.assoc_type.76c: type = assoc_entity_type @I, @I(%T.67d) [symbolic] // CHECK:STDOUT: %assoc0.99e: %I.assoc_type.76c = assoc_entity element0, @I.WithSelf.%I1 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.8db: type = symbolic_binding_type .Self, %.Self.c39 [symbolic_self] -// CHECK:STDOUT: %I.type.bee: type = facet_type <@I, @I(%.Self.binding.as_type.8db)> [symbolic_self] -// CHECK:STDOUT: %.Self.dad: %I.type.bee = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %Self.fa8: %I.type.bee = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %I.assoc_type.c03: type = assoc_entity_type @I, @I(%.Self.binding.as_type.8db) [symbolic_self] -// CHECK:STDOUT: %assoc0.fe4: %I.assoc_type.c03 = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type.b0b: type = symbolic_binding_type .Self, %.Self.dad [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.3fc: = lookup_impl_witness %.Self.dad, @I, @I(%.Self.binding.as_type.8db) [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.3fc, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] +// CHECK:STDOUT: %I.type.6e7: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] +// CHECK:STDOUT: %.Self.534: %I.type.6e7 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %Self.c6b: %I.type.6e7 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %I.assoc_type.24b: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %assoc0.0ba: %I.assoc_type.24b = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.089: type = facet_access_type %.Self.534 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.42f: = lookup_impl_witness %.Self.534, @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.42f, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.binding.as_type.8db) where %impl.elem0 = %empty_tuple.type> [symbolic_self] -// CHECK:STDOUT: %pattern_type.033: type = pattern_type %I_where.type [symbolic_self] -// CHECK:STDOUT: %T.706: %I_where.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.706 [symbolic] -// CHECK:STDOUT: %facet_value: %type = facet_value %T.binding.as_type, () [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.7f4: = lookup_impl_witness %T.706, @I, @I(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %I.facet: %I.type.bee = facet_value %T.binding.as_type, (%I.lookup_impl_witness.7f4) [symbolic] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.as_type.246) where %impl.elem0 = %empty_tuple.type> [symbolic_self] +// CHECK:STDOUT: %pattern_type.0d7: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %T.279: %I_where.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.279 [symbolic] +// CHECK:STDOUT: %facet_value: %type = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.baf: = lookup_impl_witness %T.279, @I, @I(%T.as_type) [symbolic] +// CHECK:STDOUT: %I.facet: %I.type.6e7 = facet_value %T.as_type, (%I.lookup_impl_witness.baf) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -522,88 +522,88 @@ fn F() { // CHECK:STDOUT: %T.loc4_14.2: type = symbolic_binding T, 0 [symbolic = %T.loc4_14.1 (constants.%T.67d)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.0d7 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc8_39 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.as_type.loc8_39.1: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_39.1: type = converted %T.ref, %T.as_type.loc8_39.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_39.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%T.706) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc8_39: %I.assoc_type.c03 = name_ref I1, %.loc8_39.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %facet_value.loc8_39.2: %type = facet_value constants.%T.binding.as_type, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc8_39.3: %type = converted constants.%T.binding.as_type, %facet_value.loc8_39.2 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc8_39.2: type = facet_access_type constants.%T.706 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc8_39.3: %type = facet_value %T.as_type.loc8_39.2, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc8_39.4: %type = converted constants.%T.706, %facet_value.loc8_39.3 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc8_39.3: type = facet_access_type constants.%T.706 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc8_39.4: %type = facet_value %T.as_type.loc8_39.3, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc8_39.5: %type = converted constants.%T.706, %facet_value.loc8_39.4 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc8_39: type = impl_witness_access constants.%I.lookup_impl_witness.7f4, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc8_7.2 [symbolic = %T.loc8_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc8_39.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_39.1: type = converted %T.ref, %T.as_type.loc8_39.2 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_39.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.279) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc8_39: %I.assoc_type.24b = name_ref I1, %.loc8_39.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %facet_value.loc8_39.2: %type = facet_value constants.%T.as_type, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc8_39.3: %type = converted constants.%T.as_type, %facet_value.loc8_39.2 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc8_39.3: type = facet_access_type constants.%T.279 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc8_39.3: %type = facet_value %T.as_type.loc8_39.3, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc8_39.4: %type = converted constants.%T.279, %facet_value.loc8_39.3 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc8_39.4: type = facet_access_type constants.%T.279 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc8_39.4: %type = facet_value %T.as_type.loc8_39.4, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc8_39.5: %type = converted constants.%T.279, %facet_value.loc8_39.4 [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc8_39: type = impl_witness_access constants.%I.lookup_impl_witness.baf, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc8_39.6: Core.Form = init_form %impl.elem0.loc8_39 [concrete = constants.%.262] // CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc8_12: %type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %.Self.as_type.loc8_17: type = facet_access_type %.Self.ref.loc8_12 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %.loc8_17: type = converted %.Self.ref.loc8_12, %.Self.as_type.loc8_17 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.binding.as_type.8db)> [symbolic_self = constants.%I.type.bee] +// CHECK:STDOUT: %.Self.as_type.loc8_17: type = facet_access_type %.Self.ref.loc8_12 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %.loc8_17: type = converted %.Self.ref.loc8_12, %.Self.as_type.loc8_17 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.6e7] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref.loc8_25: %I.type.bee = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.dad] -// CHECK:STDOUT: %.Self.as_type.loc8_25: type = facet_access_type %.Self.ref.loc8_25 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc8_25.1: type = converted %.Self.ref.loc8_25, %.Self.as_type.loc8_25 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc8_25.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%.Self.dad) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc8_25: %I.assoc_type.c03 = name_ref I1, %.loc8_25.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %impl.elem0.loc8_25: type = impl_witness_access constants.%I.lookup_impl_witness.3fc, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.ref.loc8_25: %I.type.6e7 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.534] +// CHECK:STDOUT: %.Self.as_type.loc8_25: type = facet_access_type %.Self.ref.loc8_25 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc8_25.1: type = converted %.Self.ref.loc8_25, %.Self.as_type.loc8_25 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc8_25.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.534) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc8_25: %I.assoc_type.24b = name_ref I1, %.loc8_25.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %impl.elem0.loc8_25: type = impl_witness_access constants.%I.lookup_impl_witness.42f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc8_32.2: type = converted %.loc8_32.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc8_19.2: type = where_expr %.Self.2 [symbolic_self = constants.%I_where.type] { -// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.bee +// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.6e7 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc8_25, %.loc8_32.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc8_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.706)] +// CHECK:STDOUT: %T.loc8_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.279)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] { -// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.0d7 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc12_47 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.as_type.loc12_47.1: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc12_47.1: type = converted %T.ref, %T.as_type.loc12_47.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc12_47.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%T.706) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc12_47: %I.assoc_type.c03 = name_ref I1, %.loc12_47.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %T.as_type.loc12_47.2: type = facet_access_type constants.%T.706 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc12_47.2: %type = facet_value %T.as_type.loc12_47.2, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc12_47.3: %type = converted constants.%T.706, %facet_value.loc12_47.2 [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc12_47: type = impl_witness_access constants.%I.lookup_impl_witness.7f4, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc12_47.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_47.1: type = converted %T.ref, %T.as_type.loc12_47.2 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_47.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.279) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc12_47: %I.assoc_type.24b = name_ref I1, %.loc12_47.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %T.as_type.loc12_47.3: type = facet_access_type constants.%T.279 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc12_47.2: %type = facet_value %T.as_type.loc12_47.3, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc12_47.3: %type = converted constants.%T.279, %facet_value.loc12_47.2 [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc12_47: type = impl_witness_access constants.%I.lookup_impl_witness.baf, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc12_47.4: Core.Form = init_form %impl.elem0.loc12_47 [concrete = constants.%.262] // CHECK:STDOUT: %.loc12_27.1: type = splice_block %.loc12_27.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc12_12: %type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %.loc12_21: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type.loc12_18: type = facet_access_type %.Self.ref.loc12_12 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %.loc12_18: type = converted %.Self.ref.loc12_12, %.Self.as_type.loc12_18 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.binding.as_type.8db)> [symbolic_self = constants.%I.type.bee] +// CHECK:STDOUT: %.Self.as_type.loc12_18: type = facet_access_type %.Self.ref.loc12_12 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %.loc12_18: type = converted %.Self.ref.loc12_12, %.Self.as_type.loc12_18 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.6e7] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref.loc12_33: %I.type.bee = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.dad] -// CHECK:STDOUT: %.Self.as_type.loc12_33: type = facet_access_type %.Self.ref.loc12_33 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc12_33.1: type = converted %.Self.ref.loc12_33, %.Self.as_type.loc12_33 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc12_33.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%.Self.dad) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc12_33: %I.assoc_type.c03 = name_ref I1, %.loc12_33.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %impl.elem0.loc12_33: type = impl_witness_access constants.%I.lookup_impl_witness.3fc, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.ref.loc12_33: %I.type.6e7 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.534] +// CHECK:STDOUT: %.Self.as_type.loc12_33: type = facet_access_type %.Self.ref.loc12_33 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc12_33.1: type = converted %.Self.ref.loc12_33, %.Self.as_type.loc12_33 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc12_33.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.534) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc12_33: %I.assoc_type.24b = name_ref I1, %.loc12_33.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %impl.elem0.loc12_33: type = impl_witness_access constants.%I.lookup_impl_witness.42f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc12_40.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc12_40.2: type = converted %.loc12_40.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc12_27.2: type = where_expr %.Self.2 [symbolic_self = constants.%I_where.type] { -// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.bee +// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.6e7 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc12_33, %.loc12_40.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc12_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.706)] +// CHECK:STDOUT: %T.loc12_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.279)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } @@ -635,9 +635,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc8_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc8_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc8_39.1: %type = facet_value %T.binding.as_type, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.loc8_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc8_39.1: type = facet_access_type %T.loc8_7.1 [symbolic = %T.as_type.loc8_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc8_39.1: %type = facet_value %T.as_type.loc8_39.1, () [symbolic = %facet_value.loc8_39.1 (constants.%facet_value)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -651,9 +651,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc12_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc12_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc12_47.1: %type = facet_value %T.binding.as_type, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.loc12_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc12_47.1: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc12_47.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc12_47.1: %type = facet_value %T.as_type.loc12_47.1, () [symbolic = %facet_value.loc12_47.1 (constants.%facet_value)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -672,55 +672,55 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%T.67d, constants.%Self.fdb) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(constants.%.Self.binding.as_type.8db) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%.Self.binding.as_type.8db +// CHECK:STDOUT: specific @I(constants.%.Self.as_type.246) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%.Self.as_type.246 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.type => constants.%I.type.bee -// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.fa8 +// CHECK:STDOUT: %I.type => constants.%I.type.6e7 +// CHECK:STDOUT: %Self.loc4_23.2 => constants.%Self.c6b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%Self.fdb) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%Self.fdb) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%.Self.binding.as_type.8db -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.c03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe4 +// CHECK:STDOUT: %T => constants.%.Self.as_type.246 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.24b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0ba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%.Self.dad) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.534) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%.Self.binding.as_type.8db -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.c03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe4 +// CHECK:STDOUT: %T => constants.%.Self.as_type.246 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.24b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0ba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%T.706) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%T.279) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%.Self.binding.as_type.8db -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.c03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe4 +// CHECK:STDOUT: %T => constants.%.Self.as_type.246 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.24b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0ba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I(constants.%T.binding.as_type) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @I(constants.%T.as_type) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%I.facet) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.as_type.246, constants.%I.facet) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%.Self.binding.as_type.8db -// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.c03 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.fe4 +// CHECK:STDOUT: %T => constants.%.Self.as_type.246 +// CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.24b +// CHECK:STDOUT: %assoc0 => constants.%assoc0.0ba // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.706) { -// CHECK:STDOUT: %T.loc8_7.1 => constants.%T.706 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.279) { +// CHECK:STDOUT: %T.loc8_7.1 => constants.%T.279 +// CHECK:STDOUT: %T.as_type.loc8_39.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc8_39.1 => constants.%facet_value // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @G(constants.%T.706) { -// CHECK:STDOUT: %T.loc12_7.1 => constants.%T.706 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: specific @G(constants.%T.279) { +// CHECK:STDOUT: %T.loc12_7.1 => constants.%T.279 +// CHECK:STDOUT: %T.as_type.loc12_47.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc12_47.1 => constants.%facet_value // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/require_import.carbon b/toolchain/check/testdata/facet/require_import.carbon index 9cd65058e18f..b44a1625a996 100644 --- a/toolchain/check/testdata/facet/require_import.carbon +++ b/toolchain/check/testdata/facet/require_import.carbon @@ -57,7 +57,7 @@ fn F(B:! Y) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %Self.f45: %X.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.f60: type = symbolic_binding_type Self, 0, %Self.f45 [symbolic] +// CHECK:STDOUT: %Self.as_type.190: type = facet_access_type %Self.f45 [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Z.type.0ed: type = facet_type <@Z, @Z(%T)> [symbolic] @@ -65,45 +65,45 @@ fn F(B:! Y) { // CHECK:STDOUT: %Z.assoc_type.0bf: type = assoc_entity_type @Z, @Z(%T) [symbolic] // CHECK:STDOUT: %Z.WithSelf.F.type.091: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%T, %Self.984) [symbolic] // CHECK:STDOUT: %Z.WithSelf.F.073: %Z.WithSelf.F.type.091 = struct_value () [symbolic] -// CHECK:STDOUT: %Z.type.9f3244.1: type = facet_type <@Z, @Z(%Self.binding.as_type.f60)> [symbolic] -// CHECK:STDOUT: %Self.fcd60c.1: %Z.type.9f3244.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %require_complete.18ce0f.1: = require_complete_type %Z.type.9f3244.1 [symbolic] +// CHECK:STDOUT: %Z.type.67cf45.1: type = facet_type <@Z, @Z(%Self.as_type.190)> [symbolic] +// CHECK:STDOUT: %Self.9e6a89.1: %Z.type.67cf45.1 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %require_complete.5aca91.1: = require_complete_type %Z.type.67cf45.1 [symbolic] // CHECK:STDOUT: %pattern_type.9a5: type = pattern_type %X.type [concrete] // CHECK:STDOUT: %A: %X.type = symbolic_binding A, 0 [symbolic] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Self.d4d: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.63e: type = symbolic_binding_type Self, 0, %Self.d4d [symbolic] -// CHECK:STDOUT: %Z.type.d16: type = facet_type <@Z, @Z(%Self.binding.as_type.63e)> [symbolic] -// CHECK:STDOUT: %Self.890: %Z.type.d16 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Self.as_type.c59: type = facet_access_type %Self.d4d [symbolic] +// CHECK:STDOUT: %Z.type.4c1: type = facet_type <@Z, @Z(%Self.as_type.c59)> [symbolic] +// CHECK:STDOUT: %Self.334: %Z.type.4c1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %pattern_type.95b: type = pattern_type %Y.type [concrete] // CHECK:STDOUT: %B: %Y.type = symbolic_binding B, 1 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A [symbolic] -// CHECK:STDOUT: %Z.type.9f3244.2: type = facet_type <@Z, @Z(%A.binding.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.18ce0f.2: = require_complete_type %Z.type.9f3244.2 [symbolic] -// CHECK:STDOUT: %Self.fcd60c.2: %Z.type.9f3244.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.6cc: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.binding.as_type, %Self.984) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.926: %Z.WithSelf.F.type.6cc = struct_value () [symbolic] -// CHECK:STDOUT: %Z.assoc_type.449: type = assoc_entity_type @Z, @Z(%A.binding.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.9a4: %Z.assoc_type.449 = assoc_entity element0, imports.%Main.import_ref.7b4 [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.048: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.binding.as_type, %A) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.aaa: %Z.WithSelf.F.type.048 = struct_value () [symbolic] +// CHECK:STDOUT: %A.as_type: type = facet_access_type %A [symbolic] +// CHECK:STDOUT: %Z.type.67cf45.2: type = facet_type <@Z, @Z(%A.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.5aca91.2: = require_complete_type %Z.type.67cf45.2 [symbolic] +// CHECK:STDOUT: %Self.9e6a89.2: %Z.type.67cf45.2 = symbolic_binding Self, 1 [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.c44: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %Self.984) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.e33: %Z.WithSelf.F.type.c44 = struct_value () [symbolic] +// CHECK:STDOUT: %Z.assoc_type.221: type = assoc_entity_type @Z, @Z(%A.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.b43: %Z.assoc_type.221 = assoc_entity element0, imports.%Main.import_ref.7b4 [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.f05: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %A) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.364: %Z.WithSelf.F.type.f05 = struct_value () [symbolic] // CHECK:STDOUT: %assoc0.20d: %Z.assoc_type.0bf = assoc_entity element0, imports.%Main.import_ref.47b [symbolic] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A, @Z, @Z(%A.binding.as_type) [symbolic] -// CHECK:STDOUT: %Z.facet: %Z.type.9f3244.2 = facet_value %A.binding.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.type.501: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.binding.as_type, %Z.facet) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.F.cf6: %Z.WithSelf.F.type.501 = struct_value () [symbolic] -// CHECK:STDOUT: %.d31: type = fn_type_with_self_type %Z.WithSelf.F.type.501, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.d31 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Z.WithSelf.F(%A.binding.as_type, %Z.facet) [symbolic] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A, @Z, @Z(%A.as_type) [symbolic] +// CHECK:STDOUT: %Z.facet: %Z.type.67cf45.2 = facet_value %A.as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.type.0d8: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type, %Z.facet) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.F.3cc: %Z.WithSelf.F.type.0d8 = struct_value () [symbolic] +// CHECK:STDOUT: %.cfd: type = fn_type_with_self_type %Z.WithSelf.F.type.0d8, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.cfd = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Z.WithSelf.F(%A.as_type, %Z.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.Z = import_ref Main//a, Z, unloaded // CHECK:STDOUT: %Main.Y: type = import_ref Main//a, Y, loaded [concrete = constants.%Y.type] // CHECK:STDOUT: %Main.X: type = import_ref Main//a, X, loaded [concrete = constants.%X.type] -// CHECK:STDOUT: %Main.import_ref.13d: type = import_ref Main//a, loc12_31, loaded [symbolic = @X.WithSelf.%Z.type (constants.%Z.type.9f3244.1)] +// CHECK:STDOUT: %Main.import_ref.4a8: type = import_ref Main//a, loc12_31, loaded [symbolic = @X.WithSelf.%Z.type (constants.%Z.type.67cf45.1)] // CHECK:STDOUT: %Main.import_ref.f56: @Z.WithSelf.%Z.assoc_type (%Z.assoc_type.0bf) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%assoc0 (constants.%assoc0.20d)] // CHECK:STDOUT: %Main.F = import_ref Main//a, F, unloaded // CHECK:STDOUT: %Main.import_ref.7b4: @Z.WithSelf.%Z.WithSelf.F.type (%Z.WithSelf.F.type.091) = import_ref Main//a, loc4_9, loaded [symbolic = @Z.WithSelf.%Z.WithSelf.F (constants.%Z.WithSelf.F.073)] @@ -111,13 +111,13 @@ fn F(B:! Y) { // CHECK:STDOUT: %Main.import_ref.1dc578.2: @Z.%Z.type (%Z.type.0ed) = import_ref Main//a, loc3_23, loaded [symbolic = @Z.%Self (constants.%Self.984)] // CHECK:STDOUT: %Main.import_ref.145 = import_ref Main//a, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//a, loc3_14, loaded [symbolic = @Z.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//a, loc12_18, loaded [symbolic = @X.WithSelf.Self.binding.as_type.impls.Z.type.require.%Self.binding.as_type (constants.%Self.binding.as_type.f60)] -// CHECK:STDOUT: %Main.import_ref.8d6: type = import_ref Main//a, loc12_30, loaded [symbolic = @X.WithSelf.Self.binding.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.9f3244.1)] +// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//a, loc12_18, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.190)] +// CHECK:STDOUT: %Main.import_ref.12d: type = import_ref Main//a, loc12_30, loaded [symbolic = @X.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.67cf45.1)] // CHECK:STDOUT: %Main.import_ref.e33cd1.2: %X.type = import_ref Main//a, loc11_14, loaded [symbolic = constants.%Self.f45] // CHECK:STDOUT: %Main.import_ref.65b = import_ref Main//a, loc11_14, unloaded -// CHECK:STDOUT: %Main.import_ref.b51 = import_ref Main//a, loc8_31, unloaded -// CHECK:STDOUT: %Main.import_ref.7bb: type = import_ref Main//a, loc8_18, loaded [symbolic = @Y.WithSelf.Self.binding.as_type.impls.Z.type.require.%Self.binding.as_type (constants.%Self.binding.as_type.63e)] -// CHECK:STDOUT: %Main.import_ref.5ab: type = import_ref Main//a, loc8_30, loaded [symbolic = @Y.WithSelf.Self.binding.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.d16)] +// CHECK:STDOUT: %Main.import_ref.030 = import_ref Main//a, loc8_31, unloaded +// CHECK:STDOUT: %Main.import_ref.7bb: type = import_ref Main//a, loc8_18, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type (constants.%Self.as_type.c59)] +// CHECK:STDOUT: %Main.import_ref.e14: type = import_ref Main//a, loc8_30, loaded [symbolic = @Y.WithSelf.Self.as_type.impls.Z.type.require.%Z.type (constants.%Z.type.4c1)] // CHECK:STDOUT: %Main.import_ref.8c73c0.2: %Y.type = import_ref Main//a, loc7_13, loaded [symbolic = constants.%Self.d4d] // CHECK:STDOUT: %Main.import_ref.3e2 = import_ref Main//a, loc7_13, unloaded // CHECK:STDOUT: %Main.import_ref.47b = import_ref Main//a, loc4_9, unloaded @@ -169,12 +169,12 @@ fn F(B:! Y) { // CHECK:STDOUT: interface @Y [from "a.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.3e2 -// CHECK:STDOUT: extend imports.%Main.import_ref.b51 +// CHECK:STDOUT: extend imports.%Main.import_ref.030 // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Y.WithSelf.Self.binding.as_type.impls.Z.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.7bb impls imports.%Main.import_ref.5ab +// CHECK:STDOUT: @Y.WithSelf.Self.as_type.impls.Z.type.require { +// CHECK:STDOUT: require imports.%Main.import_ref.7bb impls imports.%Main.import_ref.e14 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -182,24 +182,24 @@ fn F(B:! Y) { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.65b // CHECK:STDOUT: .F = -// CHECK:STDOUT: extend imports.%Main.import_ref.13d +// CHECK:STDOUT: extend imports.%Main.import_ref.4a8 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @X.WithSelf.Self.binding.as_type.impls.Z.type.require { -// CHECK:STDOUT: require imports.%Main.import_ref.67f impls imports.%Main.import_ref.8d6 +// CHECK:STDOUT: @X.WithSelf.Self.as_type.impls.Z.type.require { +// CHECK:STDOUT: require imports.%Main.import_ref.67f impls imports.%Main.import_ref.12d // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @X.WithSelf.Self.binding.as_type.impls.Z.type.require(imports.%Main.import_ref.e33cd1.2: %X.type) [from "a.carbon"] { +// CHECK:STDOUT: generic require @X.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.e33cd1.2: %X.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.f60)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.binding.as_type)> [symbolic = %Z.type (constants.%Z.type.9f3244.1)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.190)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.67cf45.1)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Y.WithSelf.Self.binding.as_type.impls.Z.type.require(imports.%Main.import_ref.8c73c0.2: %Y.type) [from "a.carbon"] { +// CHECK:STDOUT: generic require @Y.WithSelf.Self.as_type.impls.Z.type.require(imports.%Main.import_ref.8c73c0.2: %Y.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d4d)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.63e)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.binding.as_type)> [symbolic = %Z.type (constants.%Z.type.d16)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.c59)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic = %Z.type (constants.%Z.type.4c1)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.WithSelf.F(imports.%Main.import_ref.b3bc94.2: type, imports.%Main.import_ref.1dc578.2: @Z.%Z.type (%Z.type.0ed)) [from "a.carbon"] { @@ -211,27 +211,27 @@ fn F(B:! Y) { // CHECK:STDOUT: %B.loc4_21.1: %Y.type = symbolic_binding B, 1 [symbolic = %B.loc4_21.1 (constants.%B)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %A.binding.as_type: type = symbolic_binding_type A, 0, %A.loc4_7.1 [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%A.binding.as_type)> [symbolic = %Z.type (constants.%Z.type.9f3244.2)] -// CHECK:STDOUT: %require_complete: = require_complete_type %Z.type [symbolic = %require_complete (constants.%require_complete.18ce0f.2)] -// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%A.binding.as_type) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.449)] -// CHECK:STDOUT: %assoc0: @F.%Z.assoc_type (%Z.assoc_type.449) = assoc_entity element0, imports.%Main.import_ref.7b4 [symbolic = %assoc0 (constants.%assoc0.9a4)] -// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A.loc4_7.1, @Z, @Z(%A.binding.as_type) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet: @F.%Z.type (%Z.type.9f3244.2) = facet_value %A.binding.as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.F.type: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.binding.as_type, %Z.facet) [symbolic = %Z.WithSelf.F.type (constants.%Z.WithSelf.F.type.501)] -// CHECK:STDOUT: %.loc5_4.3: type = fn_type_with_self_type %Z.WithSelf.F.type, %Z.facet [symbolic = %.loc5_4.3 (constants.%.d31)] -// CHECK:STDOUT: %impl.elem0.loc5_4.2: @F.%.loc5_4.3 (%.d31) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc5_4.2: = specific_impl_function %impl.elem0.loc5_4.2, @Z.WithSelf.F(%A.binding.as_type, %Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %A.as_type.loc5_4.2: type = facet_access_type %A.loc4_7.1 [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] +// CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(%A.as_type.loc5_4.2)> [symbolic = %Z.type (constants.%Z.type.67cf45.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Z.type [symbolic = %require_complete (constants.%require_complete.5aca91.2)] +// CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%A.as_type.loc5_4.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.221)] +// CHECK:STDOUT: %assoc0: @F.%Z.assoc_type (%Z.assoc_type.221) = assoc_entity element0, imports.%Main.import_ref.7b4 [symbolic = %assoc0 (constants.%assoc0.b43)] +// CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %A.loc4_7.1, @Z, @Z(%A.as_type.loc5_4.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] +// CHECK:STDOUT: %Z.facet: @F.%Z.type (%Z.type.67cf45.2) = facet_value %A.as_type.loc5_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] +// CHECK:STDOUT: %Z.WithSelf.F.type: type = fn_type @Z.WithSelf.F, @Z.WithSelf(%A.as_type.loc5_4.2, %Z.facet) [symbolic = %Z.WithSelf.F.type (constants.%Z.WithSelf.F.type.0d8)] +// CHECK:STDOUT: %.loc5_4.3: type = fn_type_with_self_type %Z.WithSelf.F.type, %Z.facet [symbolic = %.loc5_4.3 (constants.%.cfd)] +// CHECK:STDOUT: %impl.elem0.loc5_4.2: @F.%.loc5_4.3 (%.cfd) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc5_4.2: = specific_impl_function %impl.elem0.loc5_4.2, @Z.WithSelf.F(%A.as_type.loc5_4.2, %Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %A.ref: %X.type = name_ref A, %A.loc4_7.2 [symbolic = %A.loc4_7.1 (constants.%A)] -// CHECK:STDOUT: %A.as_type: type = facet_access_type %A.ref [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %.loc5_4.1: type = converted %A.ref, %A.as_type [symbolic = %A.binding.as_type (constants.%A.binding.as_type)] -// CHECK:STDOUT: %.loc5_4.2: @F.%Z.assoc_type (%Z.assoc_type.449) = specific_constant imports.%Main.import_ref.f56, @Z.WithSelf(constants.%A.binding.as_type, constants.%A) [symbolic = %assoc0 (constants.%assoc0.9a4)] -// CHECK:STDOUT: %F.ref: @F.%Z.assoc_type (%Z.assoc_type.449) = name_ref F, %.loc5_4.2 [symbolic = %assoc0 (constants.%assoc0.9a4)] -// CHECK:STDOUT: %impl.elem0.loc5_4.1: @F.%.loc5_4.3 (%.d31) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc5_4.1: = specific_impl_function %impl.elem0.loc5_4.1, @Z.WithSelf.F(constants.%A.binding.as_type, constants.%Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %A.as_type.loc5_4.1: type = facet_access_type %A.ref [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] +// CHECK:STDOUT: %.loc5_4.1: type = converted %A.ref, %A.as_type.loc5_4.1 [symbolic = %A.as_type.loc5_4.2 (constants.%A.as_type)] +// CHECK:STDOUT: %.loc5_4.2: @F.%Z.assoc_type (%Z.assoc_type.221) = specific_constant imports.%Main.import_ref.f56, @Z.WithSelf(constants.%A.as_type, constants.%A) [symbolic = %assoc0 (constants.%assoc0.b43)] +// CHECK:STDOUT: %F.ref: @F.%Z.assoc_type (%Z.assoc_type.221) = name_ref F, %.loc5_4.2 [symbolic = %assoc0 (constants.%assoc0.b43)] +// CHECK:STDOUT: %impl.elem0.loc5_4.1: @F.%.loc5_4.3 (%.cfd) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc5_4.1: = specific_impl_function %impl.elem0.loc5_4.1, @Z.WithSelf.F(constants.%A.as_type, constants.%Z.facet) [symbolic = %specific_impl_fn.loc5_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Z.WithSelf.F.call: init %empty_tuple.type = call %specific_impl_fn.loc5_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -245,42 +245,42 @@ fn F(B:! Y) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.F(constants.%T, constants.%Self.984) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%Self.binding.as_type.f60) { -// CHECK:STDOUT: %T => constants.%Self.binding.as_type.f60 +// CHECK:STDOUT: specific @Z(constants.%Self.as_type.190) { +// CHECK:STDOUT: %T => constants.%Self.as_type.190 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.1 -// CHECK:STDOUT: %Self => constants.%Self.fcd60c.1 +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.1 +// CHECK:STDOUT: %Self => constants.%Self.9e6a89.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf(constants.%Self.f45) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.f45 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.f60 -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.1 -// CHECK:STDOUT: %require_complete => constants.%require_complete.18ce0f.1 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.190 +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.1 +// CHECK:STDOUT: %require_complete => constants.%require_complete.5aca91.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%Self.f45) { +// CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.f45) { // CHECK:STDOUT: %Self => constants.%Self.f45 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.f60 -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.1 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.190 +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%Self.binding.as_type.63e) { -// CHECK:STDOUT: %T => constants.%Self.binding.as_type.63e +// CHECK:STDOUT: specific @Z(constants.%Self.as_type.c59) { +// CHECK:STDOUT: %T => constants.%Self.as_type.c59 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.d16 -// CHECK:STDOUT: %Self => constants.%Self.890 +// CHECK:STDOUT: %Z.type => constants.%Z.type.4c1 +// CHECK:STDOUT: %Self => constants.%Self.334 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.d4d) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%Self.d4d) { +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.d4d) { // CHECK:STDOUT: %Self => constants.%Self.d4d -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.63e -// CHECK:STDOUT: %Z.type => constants.%Z.type.d16 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.c59 +// CHECK:STDOUT: %Z.type => constants.%Z.type.4c1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%A, constants.%B) { @@ -291,57 +291,57 @@ fn F(B:! Y) { // CHECK:STDOUT: specific @X.WithSelf(constants.%A) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%A -// CHECK:STDOUT: %Self.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 -// CHECK:STDOUT: %require_complete => constants.%require_complete.18ce0f.2 +// CHECK:STDOUT: %Self.as_type => constants.%A.as_type +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 +// CHECK:STDOUT: %require_complete => constants.%require_complete.5aca91.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%A.binding.as_type) { -// CHECK:STDOUT: %T => constants.%A.binding.as_type +// CHECK:STDOUT: specific @Z(constants.%A.as_type) { +// CHECK:STDOUT: %T => constants.%A.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 -// CHECK:STDOUT: %Self => constants.%Self.fcd60c.2 +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 +// CHECK:STDOUT: %Self => constants.%Self.9e6a89.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.binding.as_type, constants.%Self.984) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.as_type, constants.%Self.984) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%A.binding.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 +// CHECK:STDOUT: %T => constants.%A.as_type +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 // CHECK:STDOUT: %Self => constants.%Self.984 -// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.6cc -// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.926 -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.449 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.9a4 +// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.c44 +// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.e33 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.221 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b43 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.binding.as_type, constants.%A) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.as_type, constants.%A) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%A.binding.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 +// CHECK:STDOUT: %T => constants.%A.as_type +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 // CHECK:STDOUT: %Self => constants.%A -// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.048 -// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.aaa -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.449 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.9a4 +// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.f05 +// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.364 +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.221 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b43 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%A) { +// CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Z.type.require(constants.%A) { // CHECK:STDOUT: %Self => constants.%A -// CHECK:STDOUT: %Self.binding.as_type => constants.%A.binding.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 +// CHECK:STDOUT: %Self.as_type => constants.%A.as_type +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.binding.as_type, constants.%Z.facet) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%A.as_type, constants.%Z.facet) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T => constants.%A.binding.as_type -// CHECK:STDOUT: %Z.type => constants.%Z.type.9f3244.2 +// CHECK:STDOUT: %T => constants.%A.as_type +// CHECK:STDOUT: %Z.type => constants.%Z.type.67cf45.2 // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.501 -// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.cf6 -// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.449 -// CHECK:STDOUT: %assoc0 => constants.%assoc0.9a4 +// CHECK:STDOUT: %Z.WithSelf.F.type => constants.%Z.WithSelf.F.type.0d8 +// CHECK:STDOUT: %Z.WithSelf.F => constants.%Z.WithSelf.F.3cc +// CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.221 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.b43 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.F(constants.%A.binding.as_type, constants.%Z.facet) {} +// CHECK:STDOUT: specific @Z.WithSelf.F(constants.%A.as_type, constants.%Z.facet) {} // CHECK:STDOUT: diff --git a/toolchain/check/testdata/facet/self_in_interface_param.carbon b/toolchain/check/testdata/facet/self_in_interface_param.carbon index 874562a9aaf4..bbc239e1481b 100644 --- a/toolchain/check/testdata/facet/self_in_interface_param.carbon +++ b/toolchain/check/testdata/facet/self_in_interface_param.carbon @@ -30,21 +30,21 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: %I.type.609: type = generic_interface_type @I [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.generic: %I.type.609 = struct_value () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.8db: type = symbolic_binding_type .Self, %.Self.c39 [symbolic_self] -// CHECK:STDOUT: %I.type.bee: type = facet_type <@I, @I(%.Self.binding.as_type.8db)> [symbolic_self] -// CHECK:STDOUT: %.Self.dad: %I.type.bee = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %I.assoc_type.c03: type = assoc_entity_type @I, @I(%.Self.binding.as_type.8db) [symbolic_self] -// CHECK:STDOUT: %assoc0.fe4: %I.assoc_type.c03 = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type.b0b: type = symbolic_binding_type .Self, %.Self.dad [symbolic_self] -// CHECK:STDOUT: %I.lookup_impl_witness.3fc: = lookup_impl_witness %.Self.dad, @I, @I(%.Self.binding.as_type.8db) [symbolic_self] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.3fc, element0 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] +// CHECK:STDOUT: %I.type.6e7: type = facet_type <@I, @I(%.Self.as_type.246)> [symbolic_self] +// CHECK:STDOUT: %.Self.534: %I.type.6e7 = symbolic_binding .Self [symbolic_self] +// CHECK:STDOUT: %I.assoc_type.24b: type = assoc_entity_type @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %assoc0.0ba: %I.assoc_type.24b = assoc_entity element0, @I.WithSelf.%I1 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.089: type = facet_access_type %.Self.534 [symbolic_self] +// CHECK:STDOUT: %I.lookup_impl_witness.42f: = lookup_impl_witness %.Self.534, @I, @I(%.Self.as_type.246) [symbolic_self] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness.42f, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.binding.as_type.8db) where %impl.elem0 = %empty_tuple.type> [symbolic_self] -// CHECK:STDOUT: %pattern_type.033: type = pattern_type %I_where.type [symbolic_self] -// CHECK:STDOUT: %T.706: %I_where.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.706 [symbolic] -// CHECK:STDOUT: %facet_value: %type = facet_value %T.binding.as_type, () [symbolic] -// CHECK:STDOUT: %I.lookup_impl_witness.7f4: = lookup_impl_witness %T.706, @I, @I(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%.Self.as_type.246) where %impl.elem0 = %empty_tuple.type> [symbolic_self] +// CHECK:STDOUT: %pattern_type.0d7: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %T.279: %I_where.type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.279 [symbolic] +// CHECK:STDOUT: %facet_value: %type = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %I.lookup_impl_witness.baf: = lookup_impl_witness %T.279, @I, @I(%T.as_type) [symbolic] // CHECK:STDOUT: %.262: Core.Form = init_form %empty_tuple.type [concrete] // CHECK:STDOUT: %pattern_type.cb1: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -53,56 +53,56 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.033 = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.0d7 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.cb1 = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.cb1 = return_slot_pattern %return.param_patt, %impl.elem0.loc18_39 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_7.2 [symbolic = %T.loc18_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.as_type.loc18_39.1: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc18_39.1: type = converted %T.ref, %T.as_type.loc18_39.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc18_39.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%T.706) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.c03 = name_ref I1, %.loc18_39.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %facet_value.loc18_39.2: %type = facet_value constants.%T.binding.as_type, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc18_39.3: %type = converted constants.%T.binding.as_type, %facet_value.loc18_39.2 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc18_39.2: type = facet_access_type constants.%T.706 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc18_39.3: %type = facet_value %T.as_type.loc18_39.2, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc18_39.4: %type = converted constants.%T.706, %facet_value.loc18_39.3 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %T.as_type.loc18_39.3: type = facet_access_type constants.%T.706 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc18_39.4: %type = facet_value %T.as_type.loc18_39.3, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %.loc18_39.5: %type = converted constants.%T.706, %facet_value.loc18_39.4 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] -// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.7f4, element0 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %T.ref: %I_where.type = name_ref T, %T.loc18_7.2 [symbolic = %T.loc18_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc18_39.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc18_39.1: type = converted %T.ref, %T.as_type.loc18_39.2 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc18_39.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%T.279) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc18_39: %I.assoc_type.24b = name_ref I1, %.loc18_39.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %facet_value.loc18_39.2: %type = facet_value constants.%T.as_type, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc18_39.3: %type = converted constants.%T.as_type, %facet_value.loc18_39.2 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc18_39.3: type = facet_access_type constants.%T.279 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc18_39.3: %type = facet_value %T.as_type.loc18_39.3, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc18_39.4: %type = converted constants.%T.279, %facet_value.loc18_39.3 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.as_type.loc18_39.4: type = facet_access_type constants.%T.279 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc18_39.4: %type = facet_value %T.as_type.loc18_39.4, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %.loc18_39.5: %type = converted constants.%T.279, %facet_value.loc18_39.4 [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %impl.elem0.loc18_39: type = impl_witness_access constants.%I.lookup_impl_witness.baf, element0 [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc18_39.6: Core.Form = init_form %impl.elem0.loc18_39 [concrete = constants.%.262] // CHECK:STDOUT: %.loc18_19.1: type = splice_block %.loc18_19.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %.Self.ref.loc18_12: %type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.c39] -// CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_12 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_12, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.binding.as_type.8db)> [symbolic_self = constants.%I.type.bee] +// CHECK:STDOUT: %.Self.as_type.loc18_17: type = facet_access_type %.Self.ref.loc18_12 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %.loc18_17: type = converted %.Self.ref.loc18_12, %.Self.as_type.loc18_17 [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%.Self.as_type.246)> [symbolic_self = constants.%I.type.6e7] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.bee = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.dad] -// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc18_25.1: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.binding.as_type.b0b] -// CHECK:STDOUT: %.loc18_25.2: %I.assoc_type.c03 = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.binding.as_type.8db, constants.%.Self.dad) [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.c03 = name_ref I1, %.loc18_25.2 [symbolic_self = constants.%assoc0.fe4] -// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.3fc, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.ref.loc18_25: %I.type.6e7 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.534] +// CHECK:STDOUT: %.Self.as_type.loc18_25: type = facet_access_type %.Self.ref.loc18_25 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc18_25.1: type = converted %.Self.ref.loc18_25, %.Self.as_type.loc18_25 [symbolic_self = constants.%.Self.as_type.089] +// CHECK:STDOUT: %.loc18_25.2: %I.assoc_type.24b = specific_constant @I1.%assoc0, @I.WithSelf(constants.%.Self.as_type.246, constants.%.Self.534) [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %I1.ref.loc18_25: %I.assoc_type.24b = name_ref I1, %.loc18_25.2 [symbolic_self = constants.%assoc0.0ba] +// CHECK:STDOUT: %impl.elem0.loc18_25: type = impl_witness_access constants.%I.lookup_impl_witness.42f, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_32.2: type = converted %.loc18_32.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc18_19.2: type = where_expr %.Self.2 [symbolic_self = constants.%I_where.type] { -// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.bee +// CHECK:STDOUT: requirement_base_facet_type constants.%I.type.6e7 // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc18_25, %.loc18_32.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %T.loc18_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.706)] +// CHECK:STDOUT: %T.loc18_7.2: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.279)] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc18_7.2: %I_where.type) { -// CHECK:STDOUT: %T.loc18_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.706)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc18_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %facet_value.loc18_39.1: %type = facet_value %T.binding.as_type, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] +// CHECK:STDOUT: %T.loc18_7.1: %I_where.type = symbolic_binding T, 0 [symbolic = %T.loc18_7.1 (constants.%T.279)] +// CHECK:STDOUT: %T.as_type.loc18_39.1: type = facet_access_type %T.loc18_7.1 [symbolic = %T.as_type.loc18_39.1 (constants.%T.as_type)] +// CHECK:STDOUT: %facet_value.loc18_39.1: %type = facet_value %T.as_type.loc18_39.1, () [symbolic = %facet_value.loc18_39.1 (constants.%facet_value)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -115,9 +115,9 @@ fn G(_:! I(.Self) where .I1 = ()) {} // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.706) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.706 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.279) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.279 +// CHECK:STDOUT: %T.as_type.loc18_39.1 => constants.%T.as_type // CHECK:STDOUT: %facet_value.loc18_39.1 => constants.%facet_value // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index e1f2fab85ae1..3711c6d3d15d 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -83,7 +83,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Optional.None.type.fc5: type = fn_type @Optional.None, @Optional(%T.542) [symbolic] // CHECK:STDOUT: %Optional.None.fcb: %Optional.None.type.fc5 = struct_value () [symbolic] // CHECK:STDOUT: %.Self.2b2: %Iterate.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2b2 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2b2 [symbolic_self] // CHECK:STDOUT: %Iterate.assoc_type: type = assoc_entity_type @Iterate [concrete] // CHECK:STDOUT: %assoc1.a27: %Iterate.assoc_type = assoc_entity element1, imports.%Core.import_ref.cd6 [concrete] // CHECK:STDOUT: %Iterate.lookup_impl_witness.53f: = lookup_impl_witness %.Self.2b2, @Iterate [symbolic_self] @@ -106,7 +106,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %ptr.c9c: type = ptr_type %Int.fc6021.1 [symbolic] // CHECK:STDOUT: %pattern_type.bda: type = pattern_type %ptr.c9c [symbolic] // CHECK:STDOUT: %OptionalStorage.lookup_impl_witness.b62: = lookup_impl_witness %Int.fc6021.1, @OptionalStorage [symbolic] -// CHECK:STDOUT: %.63c: require_specific_def_type = require_specific_def @T.binding.as_type.as.OptionalStorage.impl(%facet_value) [symbolic] +// CHECK:STDOUT: %.3d0: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic] // CHECK:STDOUT: %OptionalStorage.facet.01e: %OptionalStorage.type = facet_value %Int.fc6021.1, (%OptionalStorage.lookup_impl_witness.b62) [symbolic] // CHECK:STDOUT: %Optional.e48: type = class_type @Optional, @Optional(%OptionalStorage.facet.01e) [symbolic] // CHECK:STDOUT: %.949: Core.Form = init_form %Optional.e48 [symbolic] @@ -431,8 +431,8 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Iterate.ref: type = name_ref Iterate, imports.%Core.Iterate [concrete = constants.%Iterate.type] // CHECK:STDOUT: %.Self: %Iterate.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2b2] // CHECK:STDOUT: %.Self.ref.loc9_30: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2b2] -// CHECK:STDOUT: %.Self.as_type.loc9_30: type = facet_access_type %.Self.ref.loc9_30 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_30: type = converted %.Self.ref.loc9_30, %.Self.as_type.loc9_30 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc9_30: type = facet_access_type %.Self.ref.loc9_30 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_30: type = converted %.Self.ref.loc9_30, %.Self.as_type.loc9_30 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %CursorType.ref: %Iterate.assoc_type = name_ref CursorType, imports.%Core.import_ref.0b0 [concrete = constants.%assoc1.a27] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%Iterate.lookup_impl_witness.53f, element1 [symbolic_self = constants.%impl.elem1.49e] // CHECK:STDOUT: %Core.ref.loc9_44: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -440,8 +440,8 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %N.ref.loc9_53: Core.IntLiteral = name_ref N, @IntRange.%N.loc4_17.2 [symbolic = %N (constants.%N)] // CHECK:STDOUT: %Int.loc9_54.2: type = class_type @Int, @Int(constants.%N) [symbolic = %Int.loc9_54.1 (constants.%Int.fc6021.1)] // CHECK:STDOUT: %.Self.ref.loc9_60: %Iterate.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2b2] -// CHECK:STDOUT: %.Self.as_type.loc9_60: type = facet_access_type %.Self.ref.loc9_60 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_60: type = converted %.Self.ref.loc9_60, %.Self.as_type.loc9_60 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc9_60: type = facet_access_type %.Self.ref.loc9_60 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_60: type = converted %.Self.ref.loc9_60, %.Self.as_type.loc9_60 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %ElementType.ref: %Iterate.assoc_type = name_ref ElementType, imports.%Core.import_ref.39b [concrete = constants.%assoc0.4bd] // CHECK:STDOUT: %impl.elem0: %facet_type.7e2 = impl_witness_access constants.%Iterate.lookup_impl_witness.53f, element0 [symbolic_self = constants.%impl.elem0.3b1] // CHECK:STDOUT: %Core.ref.loc9_75: = name_ref Core, imports.%Core [concrete = imports.%Core] @@ -568,7 +568,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.93c)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.7a8)] // CHECK:STDOUT: %facet_value: %facet_type.7e2 = facet_value %Int.loc11_43.1, (%Destroy.lookup_impl_witness, %Copy.lookup_impl_witness) [symbolic = %facet_value (constants.%facet_value)] -// CHECK:STDOUT: %.loc11_75.3: require_specific_def_type = require_specific_def @T.binding.as_type.as.OptionalStorage.impl(%facet_value) [symbolic = %.loc11_75.3 (constants.%.63c)] +// CHECK:STDOUT: %.loc11_75.3: require_specific_def_type = require_specific_def @T.as_type.as.OptionalStorage.impl(%facet_value) [symbolic = %.loc11_75.3 (constants.%.3d0)] // CHECK:STDOUT: %OptionalStorage.lookup_impl_witness: = lookup_impl_witness %Int.loc11_43.1, @OptionalStorage [symbolic = %OptionalStorage.lookup_impl_witness (constants.%OptionalStorage.lookup_impl_witness.b62)] // CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1: %OptionalStorage.type = facet_value %Int.loc11_43.1, (%OptionalStorage.lookup_impl_witness) [symbolic = %OptionalStorage.facet.loc11_75.1 (constants.%OptionalStorage.facet.01e)] // CHECK:STDOUT: %Optional.loc11_75.1: type = class_type @Optional, @Optional(%OptionalStorage.facet.loc11_75.1) [symbolic = %Optional.loc11_75.1 (constants.%Optional.e48)] @@ -800,7 +800,7 @@ fn Read(y:! Core.IntLiteral()) { // CHECK:STDOUT: %Destroy.lookup_impl_witness => constants.%Destroy.lookup_impl_witness.93c // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.7a8 // CHECK:STDOUT: %facet_value => constants.%facet_value -// CHECK:STDOUT: %.loc11_75.3 => constants.%.63c +// CHECK:STDOUT: %.loc11_75.3 => constants.%.3d0 // CHECK:STDOUT: %OptionalStorage.lookup_impl_witness => constants.%OptionalStorage.lookup_impl_witness.b62 // CHECK:STDOUT: %OptionalStorage.facet.loc11_75.1 => constants.%OptionalStorage.facet.01e // CHECK:STDOUT: %Optional.loc11_75.1 => constants.%Optional.e48 diff --git a/toolchain/check/testdata/for/pattern.carbon b/toolchain/check/testdata/for/pattern.carbon index 7c84468401e5..894424615710 100644 --- a/toolchain/check/testdata/for/pattern.carbon +++ b/toolchain/check/testdata/for/pattern.carbon @@ -497,17 +497,17 @@ fn Run() { // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.9fa: %tuple.type.24b = tuple_value (bool, bool) [concrete] // CHECK:STDOUT: %U: %Copy.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.57a: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.da7(%T.56c, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.7f4: %tuple.type.as.Copy.impl.Op.type.57a = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.52d: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.861(%T.56c, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.6ae: %tuple.type.as.Copy.impl.Op.type.52d = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.819: = impl_witness imports.%Copy.impl_witness_table.164 [concrete] // CHECK:STDOUT: %Copy.facet.07e: %Copy.type = facet_value bool, (%Copy.impl_witness.819) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.f9f: = impl_witness imports.%Copy.impl_witness_table.3c8, @tuple.type.as.Copy.impl.da7(%Copy.facet.07e, %Copy.facet.07e) [concrete] -// CHECK:STDOUT: %Copy.facet.3ce: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.f9f) [concrete] -// CHECK:STDOUT: %EmptyRange.717: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.a76: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.d35: %EmptyRange.Make.type.a76 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.impl_witness.128: = impl_witness imports.%Copy.impl_witness_table.b47, @tuple.type.as.Copy.impl.861(%Copy.facet.07e, %Copy.facet.07e) [concrete] +// CHECK:STDOUT: %Copy.facet.def: %Copy.type = facet_value %tuple.type.784, (%Copy.impl_witness.128) [concrete] +// CHECK:STDOUT: %EmptyRange.614: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.662: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.e55: %EmptyRange.Make.type.662 = struct_value () [concrete] // CHECK:STDOUT: %ptr.c28: type = ptr_type %empty_struct_type [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.d35, @EmptyRange.Make(%Copy.facet.3ce) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.e55, @EmptyRange.Make(%Copy.facet.def) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Optional.Get.type.1ac: type = fn_type @Optional.Get, @Optional(%T.56c) [symbolic] // CHECK:STDOUT: %Optional.Get.748: %Optional.Get.type.1ac = struct_value () [symbolic] @@ -517,26 +517,26 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.682: %EmptyRange.as.Iterate.impl.Next.type.b9d = struct_value () [symbolic] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.16c: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.56c) [symbolic] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.cbe: %EmptyRange.as.Iterate.impl.NewCursor.type.16c = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.04a: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.a15: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.90c: %EmptyRange.as.Iterate.impl.NewCursor.type.a15 = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.f9b: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.4a9: %EmptyRange.as.Iterate.impl.Next.type.f9b = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.717, (%Iterate.impl_witness.04a) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.fea: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.346: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.a72: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.fea, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.90c, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %.28c: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.346, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.678: type = class_type @Optional, @Optional(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.4a9, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.101: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %Optional.HasValue.960: %Optional.HasValue.type.101 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.758: type = fn_type @Optional.Get, @Optional(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %Optional.Get.2ff: %Optional.Get.type.758 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.d21: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.d72: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.650: %EmptyRange.as.Iterate.impl.NewCursor.type.d72 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.4be: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.330: %EmptyRange.as.Iterate.impl.Next.type.4be = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.614, (%Iterate.impl_witness.d21) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.1eb: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.99a: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.fb3: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.1eb, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.650, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %.946: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.99a, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.d3d: type = class_type @Optional, @Optional(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.330, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.b47: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %Optional.HasValue.81c: %Optional.HasValue.type.b47 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.07d: type = fn_type @Optional.Get, @Optional(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %Optional.Get.eb2: %Optional.Get.type.07d = struct_value () [concrete] // CHECK:STDOUT: %struct_type.has_value.value.6f9: type = struct_type {.has_value: bool, .value: %tuple.type.784} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.960, @Optional.HasValue(%Copy.facet.3ce) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.2ff, @Optional.Get(%Copy.facet.3ce) [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.81c, @Optional.HasValue(%Copy.facet.def) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.eb2, @Optional.Get(%Copy.facet.def) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc10_61.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.4: type = fn_type @Destroy.Op.loc10_61.4 [concrete] @@ -552,8 +552,8 @@ fn Run() { // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %Main.import_ref.299: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.8d6) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0dc)] -// CHECK:STDOUT: %Core.import_ref.445: @tuple.type.as.Copy.impl.da7.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.57a) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.da7.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.7f4)] -// CHECK:STDOUT: %Copy.impl_witness_table.3c8 = impl_witness_table (%Core.import_ref.445), @tuple.type.as.Copy.impl.da7 [concrete] +// CHECK:STDOUT: %Core.import_ref.969: @tuple.type.as.Copy.impl.861.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.52d) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.861.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.6ae)] +// CHECK:STDOUT: %Copy.impl_witness_table.b47 = impl_witness_table (%Core.import_ref.969), @tuple.type.as.Copy.impl.861 [concrete] // CHECK:STDOUT: %Core.import_ref.4d6: %bool.as.Copy.impl.Op.type = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [concrete = constants.%bool.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.164 = impl_witness_table (%Core.import_ref.4d6), @bool.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.f5d: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.051) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6ae)] @@ -576,20 +576,20 @@ fn Run() { // CHECK:STDOUT: %.loc10_42: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_48: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.loc10_52: %tuple.type.24b = tuple_literal (%.loc10_42, %.loc10_48) [concrete = constants.%tuple.9fa] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.f9f) [concrete = constants.%Copy.facet.3ce] -// CHECK:STDOUT: %.loc10_53: %Copy.type = converted %.loc10_52, %Copy.facet [concrete = constants.%Copy.facet.3ce] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.3ce) [concrete = constants.%EmptyRange.717] -// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.a76 = specific_constant imports.%Main.import_ref.299, @EmptyRange(constants.%Copy.facet.3ce) [concrete = constants.%EmptyRange.Make.d35] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.a76 = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.d35] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.3ce) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.717 = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.717 to %.loc10_60.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.717 = temporary %.loc10_60.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.a72 = impl_witness_access constants.%Iterate.impl_witness.04a, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.90c] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.784, (constants.%Copy.impl_witness.128) [concrete = constants.%Copy.facet.def] +// CHECK:STDOUT: %.loc10_53: %Copy.type = converted %.loc10_52, %Copy.facet [concrete = constants.%Copy.facet.def] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.def) [concrete = constants.%EmptyRange.614] +// CHECK:STDOUT: %.loc10_54: %EmptyRange.Make.type.662 = specific_constant imports.%Main.import_ref.299, @EmptyRange(constants.%Copy.facet.def) [concrete = constants.%EmptyRange.Make.e55] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.662 = name_ref Make, %.loc10_54 [concrete = constants.%EmptyRange.Make.e55] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.def) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_60.1: ref %EmptyRange.614 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.614 to %.loc10_60.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_60.2: ref %EmptyRange.614 = temporary %.loc10_60.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.fb3 = impl_witness_access constants.%Iterate.impl_witness.d21, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.650] // CHECK:STDOUT: %bound_method.loc10_61.1: = bound_method %.loc10_60.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.3ce) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_61.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.def) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.2: = bound_method %.loc10_60.2, %specific_fn.loc10_61.1 -// CHECK:STDOUT: %.loc10_60.3: %EmptyRange.717 = acquire_value %.loc10_60.2 +// CHECK:STDOUT: %.loc10_60.3: %EmptyRange.614 = acquire_value %.loc10_60.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_61.2(%.loc10_60.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -597,33 +597,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.28c = impl_witness_access constants.%Iterate.impl_witness.04a, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.4a9] +// CHECK:STDOUT: %impl.elem3: %.946 = impl_witness_access constants.%Iterate.impl_witness.d21, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.330] // CHECK:STDOUT: %bound_method.loc10_61.3: = bound_method %.loc10_60.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_61.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.3ce) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_61.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.def) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.4: = bound_method %.loc10_60.2, %specific_fn.loc10_61.2 -// CHECK:STDOUT: %.loc10_61.1: ref %Optional.678 = temporary_storage -// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.717 = acquire_value %.loc10_60.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.678 to %.loc10_61.1 = call %bound_method.loc10_61.4(%.loc10_60.4, %addr) -// CHECK:STDOUT: %.loc10_61.2: ref %Optional.678 = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.101 = specific_constant imports.%Core.import_ref.f5d, @Optional(constants.%Copy.facet.3ce) [concrete = constants.%Optional.HasValue.960] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.101 = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.960] +// CHECK:STDOUT: %.loc10_61.1: ref %Optional.d3d = temporary_storage +// CHECK:STDOUT: %.loc10_60.4: %EmptyRange.614 = acquire_value %.loc10_60.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.d3d to %.loc10_61.1 = call %bound_method.loc10_61.4(%.loc10_60.4, %addr) +// CHECK:STDOUT: %.loc10_61.2: ref %Optional.d3d = temporary %.loc10_61.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_61.3: %Optional.HasValue.type.b47 = specific_constant imports.%Core.import_ref.f5d, @Optional(constants.%Copy.facet.def) [concrete = constants.%Optional.HasValue.81c] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.b47 = name_ref HasValue, %.loc10_61.3 [concrete = constants.%Optional.HasValue.81c] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_61.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.3ce) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.def) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.5: = bound_method %.loc10_61.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_61.4: %Optional.678 = acquire_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.4: %Optional.d3d = acquire_value %.loc10_61.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_61.5(%.loc10_61.4) // CHECK:STDOUT: %.loc10_61.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_61.6: bool = converted %Optional.HasValue.call, %.loc10_61.5 // CHECK:STDOUT: if %.loc10_61.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_61.7: %Optional.Get.type.758 = specific_constant imports.%Core.import_ref.ab7, @Optional(constants.%Copy.facet.3ce) [concrete = constants.%Optional.Get.2ff] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.758 = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.2ff] +// CHECK:STDOUT: %.loc10_61.7: %Optional.Get.type.07d = specific_constant imports.%Core.import_ref.ab7, @Optional(constants.%Copy.facet.def) [concrete = constants.%Optional.Get.eb2] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.07d = name_ref Get, %.loc10_61.7 [concrete = constants.%Optional.Get.eb2] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_61.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.3ce) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.def) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_61.6: = bound_method %.loc10_61.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_61.8: ref %tuple.type.784 = temporary_storage -// CHECK:STDOUT: %.loc10_61.9: %Optional.678 = acquire_value %.loc10_61.2 +// CHECK:STDOUT: %.loc10_61.9: %Optional.d3d = acquire_value %.loc10_61.2 // CHECK:STDOUT: %Optional.Get.call: init %tuple.type.784 to %.loc10_61.8 = call %bound_method.loc10_61.6(%.loc10_61.9) // CHECK:STDOUT: %.loc10_61.10: ref %tuple.type.784 = temporary %.loc10_61.8, %Optional.Get.call // CHECK:STDOUT: %tuple.elem0: ref bool = tuple_access %.loc10_61.10, element0 @@ -664,14 +664,14 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_61.4(%self.param: ref %Optional.678) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_61.4(%self.param: ref %Optional.d3d) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Destroy.Op.loc10_61.5(%self.param: ref %empty_struct_type) = "no_op"; // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_60(%self.param: ref %EmptyRange.717) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_60(%self.param: ref %EmptyRange.614) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -697,16 +697,16 @@ fn Run() { // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] // CHECK:STDOUT: %tuple.6f4: %tuple.type.24b = tuple_value (%C, %C) [concrete] // CHECK:STDOUT: %U: %Copy.type = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.57a: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.da7(%T.56c, %U) [symbolic] -// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.7f4: %tuple.type.as.Copy.impl.Op.type.57a = struct_value () [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.type.52d: type = fn_type @tuple.type.as.Copy.impl.Op.1, @tuple.type.as.Copy.impl.861(%T.56c, %U) [symbolic] +// CHECK:STDOUT: %tuple.type.as.Copy.impl.Op.6ae: %tuple.type.as.Copy.impl.Op.type.52d = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.fab: = impl_witness imports.%Copy.impl_witness_table.c52 [concrete] // CHECK:STDOUT: %Copy.facet.54f: %Copy.type = facet_value %C, (%Copy.impl_witness.fab) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.9e2: = impl_witness imports.%Copy.impl_witness_table.3c8, @tuple.type.as.Copy.impl.da7(%Copy.facet.54f, %Copy.facet.54f) [concrete] -// CHECK:STDOUT: %Copy.facet.ad0: %Copy.type = facet_value %tuple.type.d23, (%Copy.impl_witness.9e2) [concrete] -// CHECK:STDOUT: %EmptyRange.849: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.type.7da: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.Make.38a: %EmptyRange.Make.type.7da = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.38a, @EmptyRange.Make(%Copy.facet.ad0) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.ee0: = impl_witness imports.%Copy.impl_witness_table.b47, @tuple.type.as.Copy.impl.861(%Copy.facet.54f, %Copy.facet.54f) [concrete] +// CHECK:STDOUT: %Copy.facet.529: %Copy.type = facet_value %tuple.type.d23, (%Copy.impl_witness.ee0) [concrete] +// CHECK:STDOUT: %EmptyRange.398: type = class_type @EmptyRange, @EmptyRange(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.type.f96: type = fn_type @EmptyRange.Make, @EmptyRange(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.Make.d4d: %EmptyRange.Make.type.f96 = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %EmptyRange.Make.d4d, @EmptyRange.Make(%Copy.facet.529) [concrete] // CHECK:STDOUT: %Iterate.type: type = facet_type <@Iterate> [concrete] // CHECK:STDOUT: %Optional.Get.type.1ac: type = fn_type @Optional.Get, @Optional(%T.56c) [symbolic] // CHECK:STDOUT: %Optional.Get.748: %Optional.Get.type.1ac = struct_value () [symbolic] @@ -716,26 +716,26 @@ fn Run() { // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.682: %EmptyRange.as.Iterate.impl.Next.type.b9d = struct_value () [symbolic] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.16c: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%T.56c) [symbolic] // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.cbe: %EmptyRange.as.Iterate.impl.NewCursor.type.16c = struct_value () [symbolic] -// CHECK:STDOUT: %Iterate.impl_witness.a9d: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.a4b: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.94e: %EmptyRange.as.Iterate.impl.NewCursor.type.a4b = struct_value () [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.24c: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.77c: %EmptyRange.as.Iterate.impl.Next.type.24c = struct_value () [concrete] -// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.849, (%Iterate.impl_witness.a9d) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.43a: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %Iterate.WithSelf.Next.type.cd1: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] -// CHECK:STDOUT: %.722: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.43a, %Iterate.facet [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.94e, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %.44b: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.cd1, %Iterate.facet [concrete] -// CHECK:STDOUT: %Optional.2f4: type = class_type @Optional, @Optional(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.77c, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %Optional.HasValue.type.6de: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %Optional.HasValue.de9: %Optional.HasValue.type.6de = struct_value () [concrete] -// CHECK:STDOUT: %Optional.Get.type.925: type = fn_type @Optional.Get, @Optional(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %Optional.Get.a9e: %Optional.Get.type.925 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.impl_witness.b87: = impl_witness imports.%Iterate.impl_witness_table, @EmptyRange.as.Iterate.impl(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.type.bab: type = fn_type @EmptyRange.as.Iterate.impl.NewCursor, @EmptyRange.as.Iterate.impl(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.891: %EmptyRange.as.Iterate.impl.NewCursor.type.bab = struct_value () [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.type.2e7: type = fn_type @EmptyRange.as.Iterate.impl.Next, @EmptyRange.as.Iterate.impl(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.dd1: %EmptyRange.as.Iterate.impl.Next.type.2e7 = struct_value () [concrete] +// CHECK:STDOUT: %Iterate.facet: %Iterate.type = facet_value %EmptyRange.398, (%Iterate.impl_witness.b87) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.NewCursor.type.462: type = fn_type @Iterate.WithSelf.NewCursor, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %Iterate.WithSelf.Next.type.c37: type = fn_type @Iterate.WithSelf.Next, @Iterate.WithSelf(%Iterate.facet) [concrete] +// CHECK:STDOUT: %.18e: type = fn_type_with_self_type %Iterate.WithSelf.NewCursor.type.462, %Iterate.facet [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.NewCursor.891, @EmptyRange.as.Iterate.impl.NewCursor(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %.100: type = fn_type_with_self_type %Iterate.WithSelf.Next.type.c37, %Iterate.facet [concrete] +// CHECK:STDOUT: %Optional.d08: type = class_type @Optional, @Optional(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.specific_fn: = specific_function %EmptyRange.as.Iterate.impl.Next.dd1, @EmptyRange.as.Iterate.impl.Next(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %Optional.HasValue.type.c7c: type = fn_type @Optional.HasValue, @Optional(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %Optional.HasValue.2a5: %Optional.HasValue.type.c7c = struct_value () [concrete] +// CHECK:STDOUT: %Optional.Get.type.7ae: type = fn_type @Optional.Get, @Optional(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %Optional.Get.58f: %Optional.Get.type.7ae = struct_value () [concrete] // CHECK:STDOUT: %struct_type.has_value.value.a96: type = struct_type {.has_value: bool, .value: %tuple.type.d23} [concrete] -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.de9, @Optional.HasValue(%Copy.facet.ad0) [concrete] -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.a9e, @Optional.Get(%Copy.facet.ad0) [concrete] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %Optional.HasValue.2a5, @Optional.HasValue(%Copy.facet.529) [concrete] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Optional.Get.58f, @Optional.Get(%Copy.facet.529) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.1: type = fn_type @Destroy.Op.loc10_49.1 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.1: %Destroy.Op.type.bae255.1 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.3: type = fn_type @Destroy.Op.loc10_49.3 [concrete] @@ -752,8 +752,8 @@ fn Run() { // CHECK:STDOUT: %Main.EmptyRange: %EmptyRange.type = import_ref Main//empty_range, EmptyRange, loaded [concrete = constants.%EmptyRange.generic] // CHECK:STDOUT: %Main.C: type = import_ref Main//empty_range, C, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.299: @EmptyRange.%EmptyRange.Make.type (%EmptyRange.Make.type.8d6) = import_ref Main//empty_range, loc5_21, loaded [symbolic = @EmptyRange.%EmptyRange.Make (constants.%EmptyRange.Make.0dc)] -// CHECK:STDOUT: %Core.import_ref.445: @tuple.type.as.Copy.impl.da7.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.57a) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.da7.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.7f4)] -// CHECK:STDOUT: %Copy.impl_witness_table.3c8 = impl_witness_table (%Core.import_ref.445), @tuple.type.as.Copy.impl.da7 [concrete] +// CHECK:STDOUT: %Core.import_ref.969: @tuple.type.as.Copy.impl.861.%tuple.type.as.Copy.impl.Op.type (%tuple.type.as.Copy.impl.Op.type.52d) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @tuple.type.as.Copy.impl.861.%tuple.type.as.Copy.impl.Op (constants.%tuple.type.as.Copy.impl.Op.6ae)] +// CHECK:STDOUT: %Copy.impl_witness_table.b47 = impl_witness_table (%Core.import_ref.969), @tuple.type.as.Copy.impl.861 [concrete] // CHECK:STDOUT: %Main.import_ref.cb5: %C.as.Copy.impl.Op.type = import_ref Main//empty_range, loc19_40, loaded [concrete = constants.%C.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.c52 = impl_witness_table (%Main.import_ref.cb5), @C.as.Copy.impl [concrete] // CHECK:STDOUT: %Core.import_ref.f5d: @Optional.%Optional.HasValue.type (%Optional.HasValue.type.051) = import_ref Core//prelude/parts/iterate, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @Optional.%Optional.HasValue (constants.%Optional.HasValue.6ae)] @@ -776,20 +776,20 @@ fn Run() { // CHECK:STDOUT: %C.ref.loc10_36: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %C.ref.loc10_39: type = name_ref C, imports.%Main.C [concrete = constants.%C] // CHECK:STDOUT: %.loc10_40: %tuple.type.24b = tuple_literal (%C.ref.loc10_36, %C.ref.loc10_39) [concrete = constants.%tuple.6f4] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.d23, (constants.%Copy.impl_witness.9e2) [concrete = constants.%Copy.facet.ad0] -// CHECK:STDOUT: %.loc10_41: %Copy.type = converted %.loc10_40, %Copy.facet [concrete = constants.%Copy.facet.ad0] -// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.ad0) [concrete = constants.%EmptyRange.849] -// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.7da = specific_constant imports.%Main.import_ref.299, @EmptyRange(constants.%Copy.facet.ad0) [concrete = constants.%EmptyRange.Make.38a] -// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.7da = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.38a] -// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.ad0) [concrete = constants.%EmptyRange.Make.specific_fn] -// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.849 = temporary_storage -// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.849 to %.loc10_48.1 = call %EmptyRange.Make.specific_fn() -// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.849 = temporary %.loc10_48.1, %EmptyRange.Make.call -// CHECK:STDOUT: %impl.elem2: %.722 = impl_witness_access constants.%Iterate.impl_witness.a9d, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.94e] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value constants.%tuple.type.d23, (constants.%Copy.impl_witness.ee0) [concrete = constants.%Copy.facet.529] +// CHECK:STDOUT: %.loc10_41: %Copy.type = converted %.loc10_40, %Copy.facet [concrete = constants.%Copy.facet.529] +// CHECK:STDOUT: %EmptyRange: type = class_type @EmptyRange, @EmptyRange(constants.%Copy.facet.529) [concrete = constants.%EmptyRange.398] +// CHECK:STDOUT: %.loc10_42: %EmptyRange.Make.type.f96 = specific_constant imports.%Main.import_ref.299, @EmptyRange(constants.%Copy.facet.529) [concrete = constants.%EmptyRange.Make.d4d] +// CHECK:STDOUT: %Make.ref: %EmptyRange.Make.type.f96 = name_ref Make, %.loc10_42 [concrete = constants.%EmptyRange.Make.d4d] +// CHECK:STDOUT: %EmptyRange.Make.specific_fn: = specific_function %Make.ref, @EmptyRange.Make(constants.%Copy.facet.529) [concrete = constants.%EmptyRange.Make.specific_fn] +// CHECK:STDOUT: %.loc10_48.1: ref %EmptyRange.398 = temporary_storage +// CHECK:STDOUT: %EmptyRange.Make.call: init %EmptyRange.398 to %.loc10_48.1 = call %EmptyRange.Make.specific_fn() +// CHECK:STDOUT: %.loc10_48.2: ref %EmptyRange.398 = temporary %.loc10_48.1, %EmptyRange.Make.call +// CHECK:STDOUT: %impl.elem2: %.18e = impl_witness_access constants.%Iterate.impl_witness.b87, element2 [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.891] // CHECK:STDOUT: %bound_method.loc10_49.1: = bound_method %.loc10_48.2, %impl.elem2 -// CHECK:STDOUT: %specific_fn.loc10_49.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.ad0) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_49.1: = specific_function %impl.elem2, @EmptyRange.as.Iterate.impl.NewCursor(constants.%Copy.facet.529) [concrete = constants.%EmptyRange.as.Iterate.impl.NewCursor.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.2: = bound_method %.loc10_48.2, %specific_fn.loc10_49.1 -// CHECK:STDOUT: %.loc10_48.3: %EmptyRange.849 = acquire_value %.loc10_48.2 +// CHECK:STDOUT: %.loc10_48.3: %EmptyRange.398 = acquire_value %.loc10_48.2 // CHECK:STDOUT: %EmptyRange.as.Iterate.impl.NewCursor.call: init %empty_struct_type = call %bound_method.loc10_49.2(%.loc10_48.3) // CHECK:STDOUT: %var: ref %empty_struct_type = var invalid // CHECK:STDOUT: assign %var, %EmptyRange.as.Iterate.impl.NewCursor.call @@ -797,33 +797,33 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: !for.next: // CHECK:STDOUT: %addr: %ptr.c28 = addr_of %var -// CHECK:STDOUT: %impl.elem3: %.44b = impl_witness_access constants.%Iterate.impl_witness.a9d, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.77c] +// CHECK:STDOUT: %impl.elem3: %.100 = impl_witness_access constants.%Iterate.impl_witness.b87, element3 [concrete = constants.%EmptyRange.as.Iterate.impl.Next.dd1] // CHECK:STDOUT: %bound_method.loc10_49.3: = bound_method %.loc10_48.2, %impl.elem3 -// CHECK:STDOUT: %specific_fn.loc10_49.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.ad0) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] +// CHECK:STDOUT: %specific_fn.loc10_49.2: = specific_function %impl.elem3, @EmptyRange.as.Iterate.impl.Next(constants.%Copy.facet.529) [concrete = constants.%EmptyRange.as.Iterate.impl.Next.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.4: = bound_method %.loc10_48.2, %specific_fn.loc10_49.2 -// CHECK:STDOUT: %.loc10_49.1: ref %Optional.2f4 = temporary_storage -// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.849 = acquire_value %.loc10_48.2 -// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.2f4 to %.loc10_49.1 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr) -// CHECK:STDOUT: %.loc10_49.2: ref %Optional.2f4 = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call -// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.6de = specific_constant imports.%Core.import_ref.f5d, @Optional(constants.%Copy.facet.ad0) [concrete = constants.%Optional.HasValue.de9] -// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.6de = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.de9] +// CHECK:STDOUT: %.loc10_49.1: ref %Optional.d08 = temporary_storage +// CHECK:STDOUT: %.loc10_48.4: %EmptyRange.398 = acquire_value %.loc10_48.2 +// CHECK:STDOUT: %EmptyRange.as.Iterate.impl.Next.call: init %Optional.d08 to %.loc10_49.1 = call %bound_method.loc10_49.4(%.loc10_48.4, %addr) +// CHECK:STDOUT: %.loc10_49.2: ref %Optional.d08 = temporary %.loc10_49.1, %EmptyRange.as.Iterate.impl.Next.call +// CHECK:STDOUT: %.loc10_49.3: %Optional.HasValue.type.c7c = specific_constant imports.%Core.import_ref.f5d, @Optional(constants.%Copy.facet.529) [concrete = constants.%Optional.HasValue.2a5] +// CHECK:STDOUT: %HasValue.ref: %Optional.HasValue.type.c7c = name_ref HasValue, %.loc10_49.3 [concrete = constants.%Optional.HasValue.2a5] // CHECK:STDOUT: %Optional.HasValue.bound: = bound_method %.loc10_49.2, %HasValue.ref -// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.ad0) [concrete = constants.%Optional.HasValue.specific_fn] +// CHECK:STDOUT: %Optional.HasValue.specific_fn: = specific_function %HasValue.ref, @Optional.HasValue(constants.%Copy.facet.529) [concrete = constants.%Optional.HasValue.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.5: = bound_method %.loc10_49.2, %Optional.HasValue.specific_fn -// CHECK:STDOUT: %.loc10_49.4: %Optional.2f4 = acquire_value %.loc10_49.2 +// CHECK:STDOUT: %.loc10_49.4: %Optional.d08 = acquire_value %.loc10_49.2 // CHECK:STDOUT: %Optional.HasValue.call: init bool = call %bound_method.loc10_49.5(%.loc10_49.4) // CHECK:STDOUT: %.loc10_49.5: bool = value_of_initializer %Optional.HasValue.call // CHECK:STDOUT: %.loc10_49.6: bool = converted %Optional.HasValue.call, %.loc10_49.5 // CHECK:STDOUT: if %.loc10_49.6 br !for.body else br !for.done // CHECK:STDOUT: // CHECK:STDOUT: !for.body: -// CHECK:STDOUT: %.loc10_49.7: %Optional.Get.type.925 = specific_constant imports.%Core.import_ref.ab7, @Optional(constants.%Copy.facet.ad0) [concrete = constants.%Optional.Get.a9e] -// CHECK:STDOUT: %Get.ref: %Optional.Get.type.925 = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.a9e] +// CHECK:STDOUT: %.loc10_49.7: %Optional.Get.type.7ae = specific_constant imports.%Core.import_ref.ab7, @Optional(constants.%Copy.facet.529) [concrete = constants.%Optional.Get.58f] +// CHECK:STDOUT: %Get.ref: %Optional.Get.type.7ae = name_ref Get, %.loc10_49.7 [concrete = constants.%Optional.Get.58f] // CHECK:STDOUT: %Optional.Get.bound: = bound_method %.loc10_49.2, %Get.ref -// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.ad0) [concrete = constants.%Optional.Get.specific_fn] +// CHECK:STDOUT: %Optional.Get.specific_fn: = specific_function %Get.ref, @Optional.Get(constants.%Copy.facet.529) [concrete = constants.%Optional.Get.specific_fn] // CHECK:STDOUT: %bound_method.loc10_49.6: = bound_method %.loc10_49.2, %Optional.Get.specific_fn // CHECK:STDOUT: %.loc10_49.8: ref %tuple.type.d23 = temporary_storage -// CHECK:STDOUT: %.loc10_49.9: %Optional.2f4 = acquire_value %.loc10_49.2 +// CHECK:STDOUT: %.loc10_49.9: %Optional.d08 = acquire_value %.loc10_49.2 // CHECK:STDOUT: %Optional.Get.call: init %tuple.type.d23 to %.loc10_49.8 = call %bound_method.loc10_49.6(%.loc10_49.9) // CHECK:STDOUT: %.loc10_49.10: ref %tuple.type.d23 = temporary %.loc10_49.8, %Optional.Get.call // CHECK:STDOUT: %tuple.elem0: ref %C = tuple_access %.loc10_49.10, element0 @@ -871,12 +871,12 @@ fn Run() { // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_49.6(%self.param: ref %Optional.2f4) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_49.6(%self.param: ref %Optional.d08) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Destroy.Op.loc10_48(%self.param: ref %EmptyRange.849) { +// CHECK:STDOUT: fn @Destroy.Op.loc10_48(%self.param: ref %EmptyRange.398) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/call_from_operator.carbon b/toolchain/check/testdata/function/builtin/call_from_operator.carbon index 5752e95587c2..3238dba60c2f 100644 --- a/toolchain/check/testdata/function/builtin/call_from_operator.carbon +++ b/toolchain/check/testdata/function/builtin/call_from_operator.carbon @@ -70,9 +70,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %AddWith.generic: %AddWith.type.b56 = struct_value () [concrete] // CHECK:STDOUT: %AddWith.type.26b: type = facet_type <@AddWith, @AddWith(%T)> [symbolic] // CHECK:STDOUT: %Self.a37: %AddWith.type.26b = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.73e: type = symbolic_binding_type Self, 1, %Self.a37 [symbolic] -// CHECK:STDOUT: %pattern_type.1f3: type = pattern_type %Self.binding.as_type.73e [symbolic] -// CHECK:STDOUT: %.409: Core.Form = init_form %Self.binding.as_type.73e [symbolic] +// CHECK:STDOUT: %Self.as_type.ceb: type = facet_access_type %Self.a37 [symbolic] +// CHECK:STDOUT: %pattern_type.80b: type = pattern_type %Self.as_type.ceb [symbolic] +// CHECK:STDOUT: %.d1a: Core.Form = init_form %Self.as_type.ceb [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.Op.type.65a: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.a37) [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.Op.647: %AddWith.WithSelf.Op.type.65a = struct_value () [symbolic] // CHECK:STDOUT: %AddWith.assoc_type.5ad: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] @@ -81,8 +81,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.generic: %As.type.3c9 = struct_value () [concrete] // CHECK:STDOUT: %As.type.b54: type = facet_type <@As, @As(%T)> [symbolic] // CHECK:STDOUT: %Self.a8c: %As.type.b54 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.69d: type = symbolic_binding_type Self, 1, %Self.a8c [symbolic] -// CHECK:STDOUT: %pattern_type.24e: type = pattern_type %Self.binding.as_type.69d [symbolic] +// CHECK:STDOUT: %Self.as_type.ae9: type = facet_access_type %Self.a8c [symbolic] +// CHECK:STDOUT: %pattern_type.eeb: type = pattern_type %Self.as_type.ae9 [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] // CHECK:STDOUT: %As.WithSelf.Convert.type.aef: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.a8c) [symbolic] @@ -93,8 +93,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.595 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9fe: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] // CHECK:STDOUT: %Self.7c0: %ImplicitAs.type.9fe = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.984: type = symbolic_binding_type Self, 1, %Self.7c0 [symbolic] -// CHECK:STDOUT: %pattern_type.8de: type = pattern_type %Self.binding.as_type.984 [symbolic] +// CHECK:STDOUT: %Self.as_type.813: type = facet_access_type %Self.7c0 [symbolic] +// CHECK:STDOUT: %pattern_type.446: type = pattern_type %Self.as_type.813 [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.f6b: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.7c0) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.de0: %ImplicitAs.WithSelf.Convert.type.f6b = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.assoc_type.b04: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] @@ -265,36 +265,36 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %AddWith.WithSelf.Op.decl: @AddWith.WithSelf.%AddWith.WithSelf.Op.type (%AddWith.WithSelf.Op.type.65a) = fn_decl @AddWith.WithSelf.Op [symbolic = @AddWith.WithSelf.%AddWith.WithSelf.Op (constants.%AddWith.WithSelf.Op.647)] { -// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.1f3) = return_slot_pattern %return.param_patt, %.loc8_37.3 [concrete] +// CHECK:STDOUT: %self.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @AddWith.WithSelf.Op.%pattern_type (%pattern_type.80b) = return_slot_pattern %return.param_patt, %.loc8_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_37.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.a37)] // CHECK:STDOUT: %Self.ref.loc8_37: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = name_ref Self, %.loc8_37.2 [symbolic = %Self (constants.%Self.a37)] -// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] -// CHECK:STDOUT: %.loc8_37.3: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] -// CHECK:STDOUT: %.loc8_37.4: Core.Form = init_form %.loc8_37.3 [symbolic = %.loc8_37.1 (constants.%.409)] -// CHECK:STDOUT: %self.param: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = value_param call_param0 -// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] { +// CHECK:STDOUT: %Self.as_type.loc8_37: type = facet_access_type %Self.ref.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] +// CHECK:STDOUT: %.loc8_37.3: type = converted %Self.ref.loc8_37, %Self.as_type.loc8_37 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] +// CHECK:STDOUT: %.loc8_37.4: Core.Form = init_form %.loc8_37.3 [symbolic = %.loc8_37.1 (constants.%.d1a)] +// CHECK:STDOUT: %self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = value_param call_param0 +// CHECK:STDOUT: %.loc8_15.1: type = splice_block %.loc8_15.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] { // CHECK:STDOUT: %.loc8_15.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.a37)] // CHECK:STDOUT: %Self.ref.loc8_15: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = name_ref Self, %.loc8_15.2 [symbolic = %Self (constants.%Self.a37)] -// CHECK:STDOUT: %Self.as_type.loc8_15: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] -// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] +// CHECK:STDOUT: %Self.as_type.loc8_15.2: type = facet_access_type %Self.ref.loc8_15 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] +// CHECK:STDOUT: %.loc8_15.3: type = converted %Self.ref.loc8_15, %Self.as_type.loc8_15.2 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = value_param call_param1 -// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] { +// CHECK:STDOUT: %self: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = value_param call_param1 +// CHECK:STDOUT: %.loc8_28.1: type = splice_block %.loc8_28.3 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] { // CHECK:STDOUT: %.loc8_28.2: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = specific_constant @AddWith.%Self.loc7_29.1, @AddWith(constants.%T) [symbolic = %Self (constants.%Self.a37)] // CHECK:STDOUT: %Self.ref.loc8_28: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = name_ref Self, %.loc8_28.2 [symbolic = %Self (constants.%Self.a37)] -// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] -// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] +// CHECK:STDOUT: %Self.as_type.loc8_28: type = facet_access_type %Self.ref.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] +// CHECK:STDOUT: %.loc8_28.3: type = converted %Self.ref.loc8_28, %Self.as_type.loc8_28 [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = out_param call_param2 -// CHECK:STDOUT: %return: ref @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e) = return_slot %return.param +// CHECK:STDOUT: %other: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = out_param call_param2 +// CHECK:STDOUT: %return: ref @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc8_41.1: @AddWith.WithSelf.%AddWith.assoc_type (%AddWith.assoc_type.5ad) = assoc_entity element0, %AddWith.WithSelf.Op.decl [symbolic = %assoc0.loc8_41.2 (constants.%assoc0.90d)] // CHECK:STDOUT: @@ -320,21 +320,21 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %As.WithSelf.Convert.decl: @As.WithSelf.%As.WithSelf.Convert.type (%As.WithSelf.Convert.type.aef) = fn_decl @As.WithSelf.Convert [symbolic = @As.WithSelf.%As.WithSelf.Convert (constants.%As.WithSelf.Convert.a95)] { -// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.24e) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.24e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.eeb) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @As.WithSelf.Convert.%pattern_type.loc12_18 (%pattern_type.eeb) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @As.WithSelf.Convert.%pattern_type.loc12_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @As.%T.loc11_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc12_31.2: Core.Form = init_form %T.ref [symbolic = %.loc12_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @As.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.69d) = value_param call_param0 -// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.69d)] { +// CHECK:STDOUT: %self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ae9) = value_param call_param0 +// CHECK:STDOUT: %.loc12_20.1: type = splice_block %.loc12_20.3 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.ae9)] { // CHECK:STDOUT: %.loc12_20.2: @As.WithSelf.Convert.%As.type (%As.type.b54) = specific_constant @As.%Self.loc11_24.1, @As(constants.%T) [symbolic = %Self (constants.%Self.a8c)] // CHECK:STDOUT: %Self.ref: @As.WithSelf.Convert.%As.type (%As.type.b54) = name_ref Self, %.loc12_20.2 [symbolic = %Self (constants.%Self.a8c)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.69d)] -// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.69d)] +// CHECK:STDOUT: %Self.as_type.loc12_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.ae9)] +// CHECK:STDOUT: %.loc12_20.3: type = converted %Self.ref, %Self.as_type.loc12_20.2 [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.ae9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @As.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.69d) = value_binding self, %self.param +// CHECK:STDOUT: %self: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ae9) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @As.WithSelf.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @As.WithSelf.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -364,21 +364,21 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type.f6b) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert.de0)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.8de) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.446) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_18 (%pattern_type.446) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc16_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc15_23.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc16_31.2: Core.Form = init_form %T.ref [symbolic = %.loc16_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.984) = value_param call_param0 -// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.984)] { +// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.813) = value_param call_param0 +// CHECK:STDOUT: %.loc16_20.1: type = splice_block %.loc16_20.3 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.813)] { // CHECK:STDOUT: %.loc16_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = specific_constant @ImplicitAs.%Self.loc15_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self.7c0)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = name_ref Self, %.loc16_20.2 [symbolic = %Self (constants.%Self.7c0)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.984)] -// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.984)] +// CHECK:STDOUT: %Self.as_type.loc16_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.813)] +// CHECK:STDOUT: %.loc16_20.3: type = converted %Self.ref, %Self.as_type.loc16_20.2 [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.813)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.984) = value_binding self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.813) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.WithSelf.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.WithSelf.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -504,35 +504,35 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.26b)] // CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.26b) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a37)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.73e)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.1f3)] -// CHECK:STDOUT: %.loc8_37.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc8_37.1 (constants.%.409)] +// CHECK:STDOUT: %Self.as_type.loc8_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_15.1 (constants.%Self.as_type.ceb)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc8_15.1 [symbolic = %pattern_type (constants.%pattern_type.80b)] +// CHECK:STDOUT: %.loc8_37.1: Core.Form = init_form %Self.as_type.loc8_15.1 [symbolic = %.loc8_37.1 (constants.%.d1a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e), %other.param: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e)) -> out %return.param: @AddWith.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.73e); +// CHECK:STDOUT: fn(%self.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb), %other.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb)) -> out %return.param: @AddWith.WithSelf.Op.%Self.as_type.loc8_15.1 (%Self.as_type.ceb); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @As.WithSelf.Convert(@As.%T.loc11_15.2: type, @As.%Self.loc11_24.1: @As.%As.type (%As.type.b54)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.b54)] // CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.b54) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a8c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.69d)] -// CHECK:STDOUT: %pattern_type.loc12_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc12_18 (constants.%pattern_type.24e)] +// CHECK:STDOUT: %Self.as_type.loc12_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_20.1 (constants.%Self.as_type.ae9)] +// CHECK:STDOUT: %pattern_type.loc12_18: type = pattern_type %Self.as_type.loc12_20.1 [symbolic = %pattern_type.loc12_18 (constants.%pattern_type.eeb)] // CHECK:STDOUT: %.loc12_31.1: Core.Form = init_form %T [symbolic = %.loc12_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc12_31: type = pattern_type %T [symbolic = %pattern_type.loc12_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @As.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.69d)) -> out %return.param: @As.WithSelf.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @As.WithSelf.Convert.%Self.as_type.loc12_20.1 (%Self.as_type.ae9)) -> out %return.param: @As.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ImplicitAs.WithSelf.Convert(@ImplicitAs.%T.loc15_23.2: type, @ImplicitAs.%Self.loc15_32.1: @ImplicitAs.%ImplicitAs.type (%ImplicitAs.type.9fe)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.7c0)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.984)] -// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %Self.as_type.loc16_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_20.1 (constants.%Self.as_type.813)] +// CHECK:STDOUT: %pattern_type.loc16_18: type = pattern_type %Self.as_type.loc16_20.1 [symbolic = %pattern_type.loc16_18 (constants.%pattern_type.446)] // CHECK:STDOUT: %.loc16_31.1: Core.Form = init_form %T [symbolic = %.loc16_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc16_31: type = pattern_type %T [symbolic = %pattern_type.loc16_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type.984)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc16_20.1 (%Self.as_type.813)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.builtin.as.AddWith.impl.Op(%self.param: %i32.builtin, %other.param: %i32.builtin) -> out %return.param: %i32.builtin = "int.sadd"; @@ -553,9 +553,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.26b // CHECK:STDOUT: %Self => constants.%Self.a37 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.73e -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f3 -// CHECK:STDOUT: %.loc8_37.1 => constants.%.409 +// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%Self.as_type.ceb +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.80b +// CHECK:STDOUT: %.loc8_37.1 => constants.%.d1a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @As(constants.%T) { @@ -568,8 +568,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %As.type => constants.%As.type.b54 // CHECK:STDOUT: %Self => constants.%Self.a8c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.69d -// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.24e +// CHECK:STDOUT: %Self.as_type.loc12_20.1 => constants.%Self.as_type.ae9 +// CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.eeb // CHECK:STDOUT: %.loc12_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -584,8 +584,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self.7c0 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.984 -// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.8de +// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%Self.as_type.813 +// CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.446 // CHECK:STDOUT: %.loc16_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -624,7 +624,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.aed // CHECK:STDOUT: %Self => constants.%AddWith.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32.builtin +// CHECK:STDOUT: %Self.as_type.loc8_15.1 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type => constants.%pattern_type.956 // CHECK:STDOUT: %.loc8_37.1 => constants.%.9cb // CHECK:STDOUT: } @@ -663,7 +663,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %As.type => constants.%As.type.1ed // CHECK:STDOUT: %Self => constants.%As.facet -// CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral +// CHECK:STDOUT: %Self.as_type.loc12_20.1 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc12_18 => constants.%pattern_type.dc0 // CHECK:STDOUT: %.loc12_31.1 => constants.%.9cb // CHECK:STDOUT: %pattern_type.loc12_31 => constants.%pattern_type.956 @@ -703,7 +703,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%i32.builtin // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.92b // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.b36 -// CHECK:STDOUT: %Self.binding.as_type => Core.IntLiteral +// CHECK:STDOUT: %Self.as_type.loc16_20.1 => Core.IntLiteral // CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.dc0 // CHECK:STDOUT: %.loc16_31.1 => constants.%.9cb // CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.956 @@ -743,7 +743,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => Core.IntLiteral // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.79c // CHECK:STDOUT: %Self => constants.%ImplicitAs.facet.c5c -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32.builtin +// CHECK:STDOUT: %Self.as_type.loc16_20.1 => constants.%i32.builtin // CHECK:STDOUT: %pattern_type.loc16_18 => constants.%pattern_type.956 // CHECK:STDOUT: %.loc16_31.1 => constants.%.f7d // CHECK:STDOUT: %pattern_type.loc16_31 => constants.%pattern_type.dc0 @@ -766,8 +766,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %As.WithSelf.Convert.type.bb7: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%T, %Self.2d0) [symbolic] // CHECK:STDOUT: %As.WithSelf.Convert.923: %As.WithSelf.Convert.type.bb7 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.297: type = symbolic_binding_type Self, 1, %Self.2d0 [symbolic] -// CHECK:STDOUT: %pattern_type.760: type = pattern_type %Self.binding.as_type.297 [symbolic] +// CHECK:STDOUT: %Self.as_type.30b: type = facet_access_type %Self.2d0 [symbolic] +// CHECK:STDOUT: %pattern_type.8b8: type = pattern_type %Self.as_type.30b [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %As.type.ffe: type = facet_type <@As, @As(%i32.builtin)> [concrete] // CHECK:STDOUT: %Self.af0: %As.type.ffe = symbolic_binding Self, 1 [symbolic] @@ -795,9 +795,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %AddWith.assoc_type.b6a: type = assoc_entity_type @AddWith, @AddWith(%T) [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.Op.type.08f: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%T, %Self.b7c) [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.Op.fb8: %AddWith.WithSelf.Op.type.08f = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.14b: type = symbolic_binding_type Self, 1, %Self.b7c [symbolic] -// CHECK:STDOUT: %pattern_type.259: type = pattern_type %Self.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %.730: Core.Form = init_form %Self.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %Self.as_type.437: type = facet_access_type %Self.b7c [symbolic] +// CHECK:STDOUT: %pattern_type.1c2: type = pattern_type %Self.as_type.437 [symbolic] +// CHECK:STDOUT: %.747: Core.Form = init_form %Self.as_type.437 [symbolic] // CHECK:STDOUT: %AddWith.type.46d: type = facet_type <@AddWith, @AddWith(%i32.builtin)> [concrete] // CHECK:STDOUT: %Self.365: %AddWith.type.46d = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %AddWith.WithSelf.Op.type.de8: type = fn_type @AddWith.WithSelf.Op, @AddWith.WithSelf(%i32.builtin, %Self.b7c) [symbolic] @@ -821,8 +821,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %ImplicitAs.assoc_type.ff3: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b3a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.738) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.1de: %ImplicitAs.WithSelf.Convert.type.b3a = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.a44: type = symbolic_binding_type Self, 1, %Self.738 [symbolic] -// CHECK:STDOUT: %pattern_type.e9a: type = pattern_type %Self.binding.as_type.a44 [symbolic] +// CHECK:STDOUT: %Self.as_type.7f5: type = facet_access_type %Self.738 [symbolic] +// CHECK:STDOUT: %pattern_type.9e2f: type = pattern_type %Self.as_type.7f5 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.139: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %Self.cce: %ImplicitAs.type.139 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.577: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(Core.IntLiteral, %Self.738) [symbolic] @@ -842,7 +842,7 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %i32.builtin.as.ImplicitAs.impl.Convert.bound: = bound_method %int_3.a0f, %i32.builtin.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %int_3.1ba: Core.IntLiteral = int_value 3 [concrete] // CHECK:STDOUT: %array_type: type = array_type %int_3.1ba, %i32.builtin [concrete] -// CHECK:STDOUT: %pattern_type.9e2: type = pattern_type %array_type [concrete] +// CHECK:STDOUT: %pattern_type.9e23: type = pattern_type %array_type [concrete] // CHECK:STDOUT: %int_4.0c1: Core.IntLiteral = int_value 4 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.2b2: = bound_method %int_3.1ba, %Core.IntLiteral.as.As.impl.Convert [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound.2d0: = bound_method %int_4.0c1, %Core.IntLiteral.as.As.impl.Convert [concrete] @@ -933,8 +933,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %arr.patt: %pattern_type.9e2 = ref_binding_pattern arr [concrete] -// CHECK:STDOUT: %arr.var_patt: %pattern_type.9e2 = var_pattern %arr.patt [concrete] +// CHECK:STDOUT: %arr.patt: %pattern_type.9e23 = ref_binding_pattern arr [concrete] +// CHECK:STDOUT: %arr.var_patt: %pattern_type.9e23 = var_pattern %arr.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %arr.var: ref %array_type = var %arr.var_patt [concrete] // CHECK:STDOUT: %.loc4_44: type = splice_block %array_type [concrete = constants.%array_type] { @@ -1045,8 +1045,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %As.type: type = facet_type <@As, @As(%T)> [symbolic = %As.type (constants.%As.type.223)] // CHECK:STDOUT: %Self: @As.WithSelf.Convert.%As.type (%As.type.223) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.2d0)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.297)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.760)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.30b)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.8b8)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1059,9 +1059,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %AddWith.type: type = facet_type <@AddWith, @AddWith(%T)> [symbolic = %AddWith.type (constants.%AddWith.type.6d9)] // CHECK:STDOUT: %Self: @AddWith.WithSelf.Op.%AddWith.type (%AddWith.type.6d9) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.b7c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.14b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.259)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.1 (constants.%.730)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.437)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1c2)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.747)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1072,8 +1072,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.031)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.031) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.738)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.a44)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e9a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.7f5)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.9e2f)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1139,8 +1139,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %As.type => constants.%As.type.223 // CHECK:STDOUT: %Self => constants.%Self.2d0 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.297 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.760 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.30b +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.8b8 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1185,9 +1185,9 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %AddWith.type => constants.%AddWith.type.6d9 // CHECK:STDOUT: %Self => constants.%Self.b7c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.14b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.259 -// CHECK:STDOUT: %.1 => constants.%.730 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.437 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1c2 +// CHECK:STDOUT: %.1 => constants.%.747 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @AddWith(constants.%i32.builtin) { @@ -1230,8 +1230,8 @@ var arr: array(i32, (1 as i32) + (2 as i32)) = (3, 4, (3 as i32) + (4 as i32)); // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.031 // CHECK:STDOUT: %Self => constants.%Self.738 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.a44 -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e9a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.7f5 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.9e2f // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/builtin/method.carbon b/toolchain/check/testdata/function/builtin/method.carbon index 3f3e345d81d5..5564b6d2e715 100644 --- a/toolchain/check/testdata/function/builtin/method.carbon +++ b/toolchain/check/testdata/function/builtin/method.carbon @@ -27,9 +27,9 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type.d31 [symbolic] -// CHECK:STDOUT: %.e46: Core.Form = init_form %Self.binding.as_type.d31 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type.a26 [symbolic] +// CHECK:STDOUT: %.eb0: Core.Form = init_form %Self.as_type.a26 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.08c: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.ab9) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.705: %I.WithSelf.F.type.08c = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -193,33 +193,33 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = return_slot_pattern %return.param_patt, %.loc16_36.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = return_slot_pattern %return.param_patt, %.loc16_36.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_36: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc16_36.2: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc16_36.3: Core.Form = init_form %.loc16_36.2 [symbolic = %.loc16_36.1 (constants.%.e46)] -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %Self.as_type.loc16_36: type = facet_access_type %Self.ref.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc16_36.2: type = converted %Self.ref.loc16_36, %Self.as_type.loc16_36 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc16_36.3: Core.Form = init_form %.loc16_36.2 [symbolic = %.loc16_36.1 (constants.%.eb0)] +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref.loc16_14: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc16_14: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param1 -// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = value_param call_param1 +// CHECK:STDOUT: %.loc16_27.1: type = splice_block %.loc16_27.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref.loc16_27: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc16_27: type = facet_access_type %Self.ref.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc16_27.2: type = converted %Self.ref.loc16_27, %Self.as_type.loc16_27 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = out_param call_param2 -// CHECK:STDOUT: %return: ref @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = return_slot %return.param +// CHECK:STDOUT: %other: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = out_param call_param2 +// CHECK:STDOUT: %return: ref @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.18e] // CHECK:STDOUT: @@ -261,11 +261,11 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] -// CHECK:STDOUT: %.loc16_36.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc16_36.1 (constants.%.e46)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.965)] +// CHECK:STDOUT: %.loc16_36.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_36.1 (constants.%.eb0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31), %other.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31)) -> out %return.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26), %other.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26)) -> out %return.param: @I.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.a26); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.I.impl.F(%self.param: %i32, %other.param: %i32) -> out %return.param: %i32 = "int.sadd"; @@ -292,9 +292,9 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.ab9) { // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 -// CHECK:STDOUT: %.loc16_36.1 => constants.%.e46 +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.a26 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 +// CHECK:STDOUT: %.loc16_36.1 => constants.%.eb0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -306,7 +306,7 @@ var arr: array(i32, (1 as i32).(I.F)(2)); // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: %.loc16_36.1 => constants.%.ff5 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/call.carbon b/toolchain/check/testdata/function/generic/call.carbon index c06d8fb17995..4a84c59a9997 100644 --- a/toolchain/check/testdata/function/generic/call.carbon +++ b/toolchain/check/testdata/function/generic/call.carbon @@ -76,12 +76,12 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -132,56 +132,56 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.435d17.2)] // CHECK:STDOUT: %.loc5_21: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %x.param: @Function.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc5_31: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc5_31.2: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Function.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @Function.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Function.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_14.2: %Copy.type) { // CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_14.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc5_37.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @Function.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> out %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 // CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 -// CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.binding.as_type (%T.binding.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) +// CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.as_type.loc5_31.1 (%T.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -193,15 +193,15 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.a87)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> out %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] // CHECK:STDOUT: %T.ref.loc12: %Copy.type = name_ref T, %T.loc10_17.2 [symbolic = %T.loc10_17.1 (constants.%T.035)] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.binding.as_type, constants.%T.035 [symbolic = %T.loc10_17.1 (constants.%T.035)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.035 [symbolic = %T.loc10_17.1 (constants.%T.035)] // CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.035) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.a87)] // CHECK:STDOUT: -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.binding.as_type (%T.binding.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) // CHECK:STDOUT: return %Function.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -249,12 +249,12 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T.035) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc5_37.2 => constants.%.435d17.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.735e75.2 // CHECK:STDOUT: %.loc6 => constants.%.023 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.58d @@ -264,9 +264,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.035) { // CHECK:STDOUT: %T.loc10_17.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc10_40.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc10_40.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.67d) { @@ -278,7 +278,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.c25) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.c25 -// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.e8f +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_37.2 => constants.%.cb6 // CHECK:STDOUT: @@ -293,7 +293,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.a7f) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.a7f -// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.31e +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.31e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.506 // CHECK:STDOUT: %.loc5_37.2 => constants.%.de8 // CHECK:STDOUT: @@ -312,12 +312,12 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] // CHECK:STDOUT: %Function.type: type = fn_type @Function [concrete] // CHECK:STDOUT: %Function: %Function.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] @@ -368,56 +368,56 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: file { // CHECK:STDOUT: %Function.decl: %Function.type = fn_decl @Function [concrete = constants.%Function] { // CHECK:STDOUT: %T.patt: %pattern_type.ce2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Function.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc5_37.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc5_37: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc5_37: type = facet_access_type %T.ref.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_37.3: type = converted %T.ref.loc5_37, %T.as_type.loc5_37 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_37.4: Core.Form = init_form %.loc5_37.3 [symbolic = %.loc5_37.2 (constants.%.435d17.2)] // CHECK:STDOUT: %.loc5_21: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc5_14.2: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %x.param: @Function.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_31.1: type = splice_block %.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc5_31: %Copy.type = name_ref T, %T.loc5_14.2 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.as_type.loc5_31: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc5_31.2: type = facet_access_type %T.ref.loc5_31 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc5_31.2: type = converted %T.ref.loc5_31, %T.as_type.loc5_31.2 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Function.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @Function.%T.binding.as_type (%T.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @Function.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %x: @Function.%T.as_type.loc5_31.1 (%T.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Function(%T.loc5_14.2: %Copy.type) { // CHECK:STDOUT: %T.loc5_14.1: %Copy.type = symbolic_binding T, 0 [symbolic = %T.loc5_14.1 (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc5_14.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc5_37.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %T.as_type.loc5_31.1: type = facet_access_type %T.loc5_14.1 [symbolic = %T.as_type.loc5_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc5_31.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc5_37.2: Core.Form = init_form %T.as_type.loc5_31.1 [symbolic = %.loc5_37.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc5_31.1 [symbolic = %require_complete (constants.%require_complete.89e)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.loc5_14.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc6: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T.loc5_14.1 [symbolic = %.loc6 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T.loc5_14.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc6_10.2: @Function.%.loc6 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %specific_impl_fn.loc6_10.2: = specific_impl_function %impl.elem0.loc6_10.2, @Copy.WithSelf.Op(%T.loc5_14.1) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Function.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @Function.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @Function.%T.as_type.loc5_31.1 (%T.as_type)) -> out %return.param: @Function.%T.as_type.loc5_31.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Function.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Function.%T.as_type.loc5_31.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc6_10.1: @Function.%.loc6 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc6_10.2 (constants.%impl.elem0.594)] // CHECK:STDOUT: %bound_method.loc6_10.1: = bound_method %x.ref, %impl.elem0.loc6_10.1 // CHECK:STDOUT: %specific_impl_fn.loc6_10.1: = specific_impl_function %impl.elem0.loc6_10.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc6_10.2 (constants.%specific_impl_fn.bdc)] // CHECK:STDOUT: %bound_method.loc6_10.2: = bound_method %x.ref, %specific_impl_fn.loc6_10.1 -// CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.binding.as_type (%T.binding.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) +// CHECK:STDOUT: %.loc5_37.1: ref @Function.%T.as_type.loc5_31.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Function.%T.as_type.loc5_31.1 (%T.as_type) to %.loc5_37.1 = call %bound_method.loc6_10.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -429,14 +429,14 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: %Function.specific_fn.loc12_10.2: = specific_function constants.%Function, @Function(%T.loc10_17.1) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.a87)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: @CallGeneric.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn(%x.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type)) -> out %return.param: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Function.ref: %Function.type = name_ref Function, file.%Function.decl [concrete = constants.%Function] -// CHECK:STDOUT: %x.ref: @CallGeneric.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x -// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.binding.as_type, constants.%T.035 [symbolic = %T.loc10_17.1 (constants.%T.035)] +// CHECK:STDOUT: %x.ref: @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) = name_ref x, %x +// CHECK:STDOUT: %.loc12: %Copy.type = converted constants.%T.as_type, constants.%T.035 [symbolic = %T.loc10_17.1 (constants.%T.035)] // CHECK:STDOUT: %Function.specific_fn.loc12_10.1: = specific_function %Function.ref, @Function(constants.%T.035) [symbolic = %Function.specific_fn.loc12_10.2 (constants.%Function.specific_fn.a87)] // CHECK:STDOUT: -// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.binding.as_type (%T.binding.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) +// CHECK:STDOUT: %Function.call: init @CallGeneric.%T.as_type.loc10_34.1 (%T.as_type) to %.loc10_40.1 = call %Function.specific_fn.loc12_10.1(%x.ref) // CHECK:STDOUT: return %Function.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -476,12 +476,12 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%T.035) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc5_37.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc5_37.2 => constants.%.435d17.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.67c +// CHECK:STDOUT: %require_complete => constants.%require_complete.89e // CHECK:STDOUT: %Copy.WithSelf.Op.type => constants.%Copy.WithSelf.Op.type.735e75.2 // CHECK:STDOUT: %.loc6 => constants.%.023 // CHECK:STDOUT: %Copy.lookup_impl_witness => constants.%Copy.lookup_impl_witness.58d @@ -491,9 +491,9 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%T.035) { // CHECK:STDOUT: %T.loc10_17.1 => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc10_40.2 => constants.%.076a48.2 +// CHECK:STDOUT: %T.as_type.loc10_34.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc10_40.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGenericPtr(constants.%T.67d) { @@ -505,7 +505,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.c25) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.c25 -// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.e8f +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_37.2 => constants.%.cb6 // CHECK:STDOUT: @@ -520,7 +520,7 @@ fn CallSpecific(x: C*) -> C* { // CHECK:STDOUT: // CHECK:STDOUT: specific @Function(constants.%Copy.facet.a7f) { // CHECK:STDOUT: %T.loc5_14.1 => constants.%Copy.facet.a7f -// CHECK:STDOUT: %T.binding.as_type => constants.%ptr.31e +// CHECK:STDOUT: %T.as_type.loc5_31.1 => constants.%ptr.31e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.506 // CHECK:STDOUT: %.loc5_37.2 => constants.%.de8 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon index 0b768e032ea4..fff60f599de3 100644 --- a/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon +++ b/toolchain/check/testdata/function/generic/call_method_on_generic_facet.carbon @@ -96,7 +96,7 @@ fn G() { // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.03dff7.2 [symbolic] // CHECK:STDOUT: %Generic.WithSelf.F.type.56e: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T, %U) [symbolic] // CHECK:STDOUT: %Generic.WithSelf.F.a99: %Generic.WithSelf.F.type.56e = struct_value () [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] // CHECK:STDOUT: %Generic.lookup_impl_witness: = lookup_impl_witness %U, @Generic, @Generic(%T) [symbolic] // CHECK:STDOUT: %.ab3: type = fn_type_with_self_type %Generic.WithSelf.F.type.56e, %U [symbolic] // CHECK:STDOUT: %impl.elem0: %.ab3 = impl_witness_access %Generic.lookup_impl_witness, element0 [symbolic] @@ -268,7 +268,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %Generic.type.loc33_45.1 [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 1, %U.loc33_33.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc34_4.2: type = facet_access_type %U.loc33_33.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %Generic.assoc_type: type = assoc_entity_type @Generic, @Generic(%T.loc33_23.1) [symbolic = %Generic.assoc_type (constants.%Generic.assoc_type.22afda.2)] // CHECK:STDOUT: %assoc0: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.22afda.2) = assoc_entity element0, @Generic.WithSelf.%Generic.WithSelf.F.decl [symbolic = %assoc0 (constants.%assoc0.e0dc00.2)] // CHECK:STDOUT: %Generic.WithSelf.F.type: type = fn_type @Generic.WithSelf.F, @Generic.WithSelf(%T.loc33_23.1, %U.loc33_33.1) [symbolic = %Generic.WithSelf.F.type (constants.%Generic.WithSelf.F.type.56e)] @@ -280,8 +280,8 @@ fn G() { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %U.ref: @CallGenericMethod.%Generic.type.loc33_45.1 (%Generic.type.03dff7.2) = name_ref U, %U.loc33_33.2 [symbolic = %U.loc33_33.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc34_4.1: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc34_4.1: type = facet_access_type %U.ref [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc34_4.1: type = converted %U.ref, %U.as_type.loc34_4.1 [symbolic = %U.as_type.loc34_4.2 (constants.%U.as_type)] // CHECK:STDOUT: %.loc34_4.2: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.22afda.2) = specific_constant @Generic.WithSelf.%assoc0.loc16_9.1, @Generic.WithSelf(constants.%T, constants.%U) [symbolic = %assoc0 (constants.%assoc0.e0dc00.2)] // CHECK:STDOUT: %F.ref: @CallGenericMethod.%Generic.assoc_type (%Generic.assoc_type.22afda.2) = name_ref F, %.loc34_4.2 [symbolic = %assoc0 (constants.%assoc0.e0dc00.2)] // CHECK:STDOUT: %impl.elem0.loc34_4.1: @CallGenericMethod.%.loc34_4.3 (%.ab3) = impl_witness_access constants.%Generic.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc34_4.2 (constants.%impl.elem0)] @@ -408,7 +408,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete => constants.%complete_type.57a -// CHECK:STDOUT: %U.binding.as_type => constants.%ImplsGeneric +// CHECK:STDOUT: %U.as_type.loc34_4.2 => constants.%ImplsGeneric // CHECK:STDOUT: %Generic.assoc_type => constants.%Generic.assoc_type.6dc // CHECK:STDOUT: %assoc0 => constants.%assoc0.717 // CHECK:STDOUT: %Generic.WithSelf.F.type => constants.%Generic.WithSelf.F.type.c86 diff --git a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon index b5eaaca73695..4f9dbd3e9d39 100644 --- a/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon +++ b/toolchain/check/testdata/function/generic/deduce_nested_facet_value.carbon @@ -73,18 +73,18 @@ fn F() { // CHECK:STDOUT: %facet_type: type = facet_type <@Y & @W> [concrete] // CHECK:STDOUT: %pattern_type.935: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %E: %facet_type = symbolic_binding E, 0 [symbolic] -// CHECK:STDOUT: %E.binding.as_type: type = symbolic_binding_type E, 0, %E [symbolic] +// CHECK:STDOUT: %E.as_type: type = facet_access_type %E [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E, @Y [symbolic] -// CHECK:STDOUT: %Y.facet.9df: %Y.type = facet_value %E.binding.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %CC.dc2: type = class_type @CC, @CC(%Y.facet.9df) [symbolic] -// CHECK:STDOUT: %Z.impl_witness.506: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] -// CHECK:STDOUT: %Z.facet.8c4: %Z.type = facet_value %CC.dc2, (%Z.impl_witness.506) [symbolic] +// CHECK:STDOUT: %Y.facet.78c: %Y.type = facet_value %E.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %CC.675: type = class_type @CC, @CC(%Y.facet.78c) [symbolic] +// CHECK:STDOUT: %Z.impl_witness.228: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%E) [symbolic] +// CHECK:STDOUT: %Z.facet.a80: %Z.type = facet_value %CC.675, (%Z.impl_witness.228) [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %CC.062: type = class_type @CC, @CC(%Y.facet.215) [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %DD, (%Y.impl_witness, %W.impl_witness) [concrete] -// CHECK:STDOUT: %Z.impl_witness.c39: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] -// CHECK:STDOUT: %Z.facet.d22: %Z.type = facet_value %CC.062, (%Z.impl_witness.c39) [concrete] +// CHECK:STDOUT: %Z.impl_witness.0f1: = impl_witness @CC.as.Z.impl.%Z.impl_witness_table, @CC.as.Z.impl(%facet_value) [concrete] +// CHECK:STDOUT: %Z.facet.eb8: %Z.type = facet_value %CC.062, (%Z.impl_witness.0f1) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -135,10 +135,10 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %CC.ref: %CC.type = name_ref CC, file.%CC.decl [concrete = constants.%CC.generic] // CHECK:STDOUT: %E.ref: %facet_type = name_ref E, %E.loc19_15.1 [symbolic = %E.loc19_15.2 (constants.%E)] -// CHECK:STDOUT: %E.as_type: type = facet_access_type %E.ref [symbolic = %E.binding.as_type (constants.%E.binding.as_type)] -// CHECK:STDOUT: %Y.facet.loc19_29.1: %Y.type = facet_value %E.as_type, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.9df)] -// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.9df)] -// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.9df) [symbolic = %CC.loc19_29.2 (constants.%CC.dc2)] +// CHECK:STDOUT: %E.as_type.loc19_29.1: type = facet_access_type %E.ref [symbolic = %E.as_type.loc19_29.2 (constants.%E.as_type)] +// CHECK:STDOUT: %Y.facet.loc19_29.1: %Y.type = facet_value %E.as_type.loc19_29.1, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.78c)] +// CHECK:STDOUT: %.loc19_29: %Y.type = converted %E.ref, %Y.facet.loc19_29.1 [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.78c)] +// CHECK:STDOUT: %CC.loc19_29.1: type = class_type @CC, @CC(constants.%Y.facet.78c) [symbolic = %CC.loc19_29.2 (constants.%CC.675)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %.loc19_20.1: type = splice_block %.loc19_20.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -206,17 +206,17 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic impl @CC.as.Z.impl(%E.loc19_15.1: %facet_type) { // CHECK:STDOUT: %E.loc19_15.2: %facet_type = symbolic_binding E, 0 [symbolic = %E.loc19_15.2 (constants.%E)] -// CHECK:STDOUT: %E.binding.as_type: type = symbolic_binding_type E, 0, %E.loc19_15.2 [symbolic = %E.binding.as_type (constants.%E.binding.as_type)] +// CHECK:STDOUT: %E.as_type.loc19_29.2: type = facet_access_type %E.loc19_15.2 [symbolic = %E.as_type.loc19_29.2 (constants.%E.as_type)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %E.loc19_15.2, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc19_29.2: %Y.type = facet_value %E.binding.as_type, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.9df)] -// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.dc2)] -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_15.2) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.506)] +// CHECK:STDOUT: %Y.facet.loc19_29.2: %Y.type = facet_value %E.as_type.loc19_29.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc19_29.2 (constants.%Y.facet.78c)] +// CHECK:STDOUT: %CC.loc19_29.2: type = class_type @CC, @CC(%Y.facet.loc19_29.2) [symbolic = %CC.loc19_29.2 (constants.%CC.675)] +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(%E.loc19_15.2) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.228)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %CC.loc19_29.1 as %Z.ref { // CHECK:STDOUT: %Z.impl_witness_table = impl_witness_table (), @CC.as.Z.impl [concrete] -// CHECK:STDOUT: %Z.impl_witness.loc19_36.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.506)] +// CHECK:STDOUT: %Z.impl_witness.loc19_36.1: = impl_witness %Z.impl_witness_table, @CC.as.Z.impl(constants.%E) [symbolic = %Z.impl_witness.loc19_36.2 (constants.%Z.impl_witness.228)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Z.impl_witness.loc19_36.1 @@ -253,8 +253,8 @@ fn F() { // CHECK:STDOUT: %.loc22_9: %Y.type = converted %DD.ref, %Y.facet [concrete = constants.%Y.facet.215] // CHECK:STDOUT: %CC: type = class_type @CC, @CC(constants.%Y.facet.215) [concrete = constants.%CC.062] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.c39) [concrete = constants.%Z.facet.d22] -// CHECK:STDOUT: %.loc22_12: %Z.type = converted %CC, %Z.facet [concrete = constants.%Z.facet.d22] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %CC, (constants.%Z.impl_witness.0f1) [concrete = constants.%Z.facet.eb8] +// CHECK:STDOUT: %.loc22_12: %Z.type = converted %CC, %Z.facet [concrete = constants.%Z.facet.eb8] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -282,20 +282,20 @@ fn F() { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @CC(constants.%Y.facet.9df) { -// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.9df +// CHECK:STDOUT: specific @CC(constants.%Y.facet.78c) { +// CHECK:STDOUT: %D.loc12_11.1 => constants.%Y.facet.78c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%E) { // CHECK:STDOUT: %E.loc19_15.2 => constants.%E -// CHECK:STDOUT: %E.binding.as_type => constants.%E.binding.as_type +// CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%E.as_type // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness -// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.9df -// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.dc2 -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.506 +// CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.78c +// CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.675 +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.228 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.8c4) { +// CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet.a80) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -305,11 +305,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @CC.as.Z.impl(constants.%facet_value) { // CHECK:STDOUT: %E.loc19_15.2 => constants.%facet_value -// CHECK:STDOUT: %E.binding.as_type => constants.%DD +// CHECK:STDOUT: %E.as_type.loc19_29.2 => constants.%DD // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.impl_witness // CHECK:STDOUT: %Y.facet.loc19_29.2 => constants.%Y.facet.215 // CHECK:STDOUT: %CC.loc19_29.2 => constants.%CC.062 -// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.c39 +// CHECK:STDOUT: %Z.impl_witness.loc19_36.2 => constants.%Z.impl_witness.0f1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon index 8f9f01c4ce74..3d1cdd51f90d 100644 --- a/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon +++ b/toolchain/check/testdata/function/generic/fail_deduce_imported_function.carbon @@ -54,9 +54,9 @@ fn B() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.473: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.binding.as_type} [symbolic] -// CHECK:STDOUT: %pattern_type.3fc: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type} [symbolic] +// CHECK:STDOUT: %pattern_type.768: type = pattern_type %struct_type.a [symbolic] // CHECK:STDOUT: %A.type: type = fn_type @A [concrete] // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic] @@ -70,8 +70,8 @@ fn B() { // CHECK:STDOUT: %Z.decl: type = interface_decl @Z [concrete = constants.%Z.type] {} {} // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] { // CHECK:STDOUT: %T.patt: %pattern_type.473 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.3fc) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.3fc) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @A.%pattern_type (%pattern_type.768) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.%pattern_type (%pattern_type.768) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_10: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -81,9 +81,9 @@ fn B() { // CHECK:STDOUT: %x.param: @A.%struct_type.a.loc4_29.1 (%struct_type.a) = value_param call_param0 // CHECK:STDOUT: %.loc4_29: type = splice_block %struct_type.a.loc4_29.2 [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] { // CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc4_28: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_29.2: type = struct_type {.a: @A.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.as_type.loc4_28.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc4_28: type = converted %T.ref, %T.as_type.loc4_28.2 [symbolic = %T.as_type.loc4_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_29.2: type = struct_type {.a: @A.%T.as_type.loc4_28.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @A.%struct_type.a.loc4_29.1 (%struct_type.a) = value_binding x, %x.param // CHECK:STDOUT: } @@ -102,9 +102,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A(%T.loc4_7.2: %Z.type) { // CHECK:STDOUT: %T.loc4_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc4_7.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc4_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_29.1: type = struct_type {.a: @A.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_29.1 [symbolic = %pattern_type (constants.%pattern_type.3fc)] +// CHECK:STDOUT: %T.as_type.loc4_28.1: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc4_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_29.1: type = struct_type {.a: @A.%T.as_type.loc4_28.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_29.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_29.1 [symbolic = %pattern_type (constants.%pattern_type.768)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_29.1 [symbolic = %require_complete (constants.%require_complete)] @@ -121,9 +121,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { // CHECK:STDOUT: %T.loc4_7.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc4_28.1 => constants.%T.as_type // CHECK:STDOUT: %struct_type.a.loc4_29.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3fc +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.768 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_deduce_imported_function.carbon @@ -135,9 +135,9 @@ fn B() { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %pattern_type.e5e: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.binding.as_type} [symbolic] -// CHECK:STDOUT: %pattern_type.857: type = pattern_type %struct_type.a [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %T.as_type} [symbolic] +// CHECK:STDOUT: %pattern_type.a70: type = pattern_type %struct_type.a [symbolic] // CHECK:STDOUT: %A.type.816: type = fn_type @A.loc4 [concrete] // CHECK:STDOUT: %A.8ae: %A.type.816 = struct_value () [concrete] // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic] @@ -172,8 +172,8 @@ fn B() { // CHECK:STDOUT: %Lib.import = import Lib // CHECK:STDOUT: %A.decl: %A.type.816 = fn_decl @A.loc4 [concrete = constants.%A.8ae] { // CHECK:STDOUT: %T.patt: %pattern_type.e5e = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.857) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.857) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @A.loc4.%pattern_type (%pattern_type.a70) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @A.loc4.%pattern_type (%pattern_type.a70) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_13: type = splice_block %Z.ref [concrete = constants.%Z.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -184,9 +184,9 @@ fn B() { // CHECK:STDOUT: %x.param: @A.loc4.%struct_type.a.loc4_33.1 (%struct_type.a) = value_param call_param0 // CHECK:STDOUT: %.loc4_33: type = splice_block %struct_type.a.loc4_33.2 [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] { // CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc4_7.2 [symbolic = %T.loc4_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc4_32: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_33.2: type = struct_type {.a: @A.loc4.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %T.as_type.loc4_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc4_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc4_32: type = converted %T.ref, %T.as_type.loc4_32.2 [symbolic = %T.as_type.loc4_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_33.2: type = struct_type {.a: @A.loc4.%T.as_type.loc4_32.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: @A.loc4.%struct_type.a.loc4_33.1 (%struct_type.a) = value_binding x, %x.param // CHECK:STDOUT: } @@ -203,9 +203,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.loc4(%T.loc4_7.2: %Z.type) { // CHECK:STDOUT: %T.loc4_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc4_7.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc4_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %struct_type.a.loc4_33.1: type = struct_type {.a: @A.loc4.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_33.1 [symbolic = %pattern_type (constants.%pattern_type.857)] +// CHECK:STDOUT: %T.as_type.loc4_32.1: type = facet_access_type %T.loc4_7.1 [symbolic = %T.as_type.loc4_32.1 (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a.loc4_33.1: type = struct_type {.a: @A.loc4.%T.as_type.loc4_32.1 (%T.as_type)} [symbolic = %struct_type.a.loc4_33.1 (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a.loc4_33.1 [symbolic = %pattern_type (constants.%pattern_type.a70)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a.loc4_33.1 [symbolic = %require_complete (constants.%require_complete)] @@ -230,9 +230,9 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @A.1(imports.%Lib.import_ref.4c8: %Z.type) [from "lib.carbon"] { // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: @A.1.%T.binding.as_type (%T.binding.as_type)} [symbolic = %struct_type.a (constants.%struct_type.a)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a [symbolic = %pattern_type (constants.%pattern_type.857)] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic = %T.as_type (constants.%T.as_type)] +// CHECK:STDOUT: %struct_type.a: type = struct_type {.a: @A.1.%T.as_type (%T.as_type)} [symbolic = %struct_type.a (constants.%struct_type.a)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %struct_type.a [symbolic = %pattern_type (constants.%pattern_type.a70)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete: = require_complete_type %struct_type.a [symbolic = %require_complete (constants.%require_complete)] @@ -246,15 +246,15 @@ fn B() { // CHECK:STDOUT: // CHECK:STDOUT: specific @A.loc4(constants.%T) { // CHECK:STDOUT: %T.loc4_7.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc4_32.1 => constants.%T.as_type // CHECK:STDOUT: %struct_type.a.loc4_33.1 => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.857 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a70 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.1(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type => constants.%T.as_type // CHECK:STDOUT: %struct_type.a => constants.%struct_type.a -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.857 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a70 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/dependent_param.carbon b/toolchain/check/testdata/generic/dependent_param.carbon index b546767c84a3..8efd0272964e 100644 --- a/toolchain/check/testdata/generic/dependent_param.carbon +++ b/toolchain/check/testdata/generic/dependent_param.carbon @@ -34,23 +34,23 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %Outer.type: type = generic_class_type @Outer [concrete] // CHECK:STDOUT: %Outer.generic: %Outer.type = struct_value () [concrete] // CHECK:STDOUT: %Outer.4b9: type = class_type @Outer, @Outer(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %U.959: %T.binding.as_type = symbolic_binding U, 1 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %U.556: %T.as_type = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %Inner.type.af4: type = generic_class_type @Inner, @Outer(%T.035) [symbolic] // CHECK:STDOUT: %Inner.generic.994: %Inner.type.af4 = struct_value () [symbolic] -// CHECK:STDOUT: %Inner.c23: type = class_type @Inner, @Inner(%T.035, %U.959) [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Inner.Get.type.6ef: type = fn_type @Inner.Get, @Inner(%T.035, %U.959) [symbolic] -// CHECK:STDOUT: %Inner.Get.ba5: %Inner.Get.type.6ef = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete.67c: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %Inner.a01: type = class_type @Inner, @Inner(%T.035, %U.556) [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %T.as_type [symbolic] +// CHECK:STDOUT: %Inner.Get.type.c9e: type = fn_type @Inner.Get, @Inner(%T.035, %U.556) [symbolic] +// CHECK:STDOUT: %Inner.Get.a43: %Inner.Get.type.c9e = struct_value () [symbolic] +// CHECK:STDOUT: %require_complete.89e: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58d: = lookup_impl_witness %T.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.2: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T.035) [symbolic] // CHECK:STDOUT: %.023: type = fn_type_with_self_type %Copy.WithSelf.Op.type.735e75.2, %T.035 [symbolic] // CHECK:STDOUT: %impl.elem0.594: %.023 = impl_witness_access %Copy.lookup_impl_witness.58d, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn.bdc: = specific_impl_function %impl.elem0.594, @Copy.WithSelf.Op(%T.035) [symbolic] -// CHECK:STDOUT: %bound_method.068: = bound_method %U.959, %impl.elem0.594 [symbolic] -// CHECK:STDOUT: %bound_method.d5d: = bound_method %U.959, %specific_impl_fn.bdc [symbolic] +// CHECK:STDOUT: %bound_method.9c4: = bound_method %U.556, %impl.elem0.594 [symbolic] +// CHECK:STDOUT: %bound_method.992: = bound_method %U.556, %specific_impl_fn.bdc [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %N: Core.IntLiteral = symbolic_binding N, 0 [symbolic] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] @@ -131,62 +131,62 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_14.2: %Copy.type, %U.loc5_16.2: @Inner.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: generic class @Inner(@Outer.%T.loc4_14.2: %Copy.type, %U.loc5_16.2: @Inner.%T.as_type.loc5_19.1 (%T.as_type)) { // CHECK:STDOUT: // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_16.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.6ef)] -// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.6ef) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.ba5)] +// CHECK:STDOUT: %Inner.Get.type: type = fn_type @Inner.Get, @Inner(%T, %U.loc5_16.1) [symbolic = %Inner.Get.type (constants.%Inner.Get.type.c9e)] +// CHECK:STDOUT: %Inner.Get: @Inner.%Inner.Get.type (%Inner.Get.type.c9e) = struct_value () [symbolic = %Inner.Get (constants.%Inner.Get.a43)] // CHECK:STDOUT: // CHECK:STDOUT: class { -// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.6ef) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.ba5)] { -// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc7_17.3 [concrete] +// CHECK:STDOUT: %Inner.Get.decl: @Inner.%Inner.Get.type (%Inner.Get.type.c9e) = fn_decl @Inner.Get [symbolic = @Inner.%Inner.Get (constants.%Inner.Get.a43)] { +// CHECK:STDOUT: %return.param_patt: @Inner.Get.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Inner.Get.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc7_17.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %Copy.type = name_ref T, @Outer.%T.loc4_14.2 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_17.3: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_17.4: Core.Form = init_form %.loc7_17.3 [symbolic = %.loc7_17.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %return.param: ref @Inner.Get.%T.binding.as_type (%T.binding.as_type) = out_param call_param0 -// CHECK:STDOUT: %return: ref @Inner.Get.%T.binding.as_type (%T.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %T.as_type.loc7_17.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_17.3: type = converted %T.ref, %T.as_type.loc7_17.2 [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_17.4: Core.Form = init_form %.loc7_17.3 [symbolic = %.loc7_17.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %return.param: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = out_param call_param0 +// CHECK:STDOUT: %return: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: complete_type_witness = %complete_type // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .Self = constants.%Inner.c23 +// CHECK:STDOUT: .Self = constants.%Inner.a01 // CHECK:STDOUT: .T = // CHECK:STDOUT: .Get = %Inner.Get.decl // CHECK:STDOUT: .U = // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @Inner.Get(@Outer.%T.loc4_14.2: %Copy.type, @Inner.%U.loc5_16.2: @Inner.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: generic fn @Inner.Get(@Outer.%T.loc4_14.2: %Copy.type, @Inner.%U.loc5_16.2: @Inner.%T.as_type.loc5_19.1 (%T.as_type)) { // CHECK:STDOUT: %T: %Copy.type = symbolic_binding T, 0 [symbolic = %T (constants.%T.035)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_17.2: Core.Form = init_form %T.binding.as_type [symbolic = %.loc7_17.2 (constants.%.076a48.2)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] +// CHECK:STDOUT: %T.as_type.loc7_17.1: type = facet_access_type %T [symbolic = %T.as_type.loc7_17.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_17.2: Core.Form = init_form %T.as_type.loc7_17.1 [symbolic = %.loc7_17.2 (constants.%.435d17.2)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc7_17.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.67c)] -// CHECK:STDOUT: %U: @Inner.Get.%T.binding.as_type (%T.binding.as_type) = symbolic_binding U, 1 [symbolic = %U (constants.%U.959)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc7_17.1 [symbolic = %require_complete (constants.%require_complete.89e)] +// CHECK:STDOUT: %U: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = symbolic_binding U, 1 [symbolic = %U (constants.%U.556)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%T) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.2)] // CHECK:STDOUT: %.loc7_28: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %T [symbolic = %.loc7_28 (constants.%.023)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %T, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58d)] // CHECK:STDOUT: %impl.elem0.loc7_28.2: @Inner.Get.%.loc7_28 (%.023) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.594)] -// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.068)] +// CHECK:STDOUT: %bound_method.loc7_28.3: = bound_method %U, %impl.elem0.loc7_28.2 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.9c4)] // CHECK:STDOUT: %specific_impl_fn.loc7_28.2: = specific_impl_function %impl.elem0.loc7_28.2, @Copy.WithSelf.Op(%T) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.bdc)] -// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.d5d)] +// CHECK:STDOUT: %bound_method.loc7_28.4: = bound_method %U, %specific_impl_fn.loc7_28.2 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.992)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @Inner.Get.%T.binding.as_type (%T.binding.as_type) { +// CHECK:STDOUT: fn() -> out %return.param: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %U.ref: @Inner.Get.%T.binding.as_type (%T.binding.as_type) = name_ref U, @Inner.%U.loc5_16.2 [symbolic = %U (constants.%U.959)] +// CHECK:STDOUT: %U.ref: @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = name_ref U, @Inner.%U.loc5_16.2 [symbolic = %U (constants.%U.556)] // CHECK:STDOUT: %impl.elem0.loc7_28.1: @Inner.Get.%.loc7_28 (%.023) = impl_witness_access constants.%Copy.lookup_impl_witness.58d, element0 [symbolic = %impl.elem0.loc7_28.2 (constants.%impl.elem0.594)] -// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.068)] +// CHECK:STDOUT: %bound_method.loc7_28.1: = bound_method %U.ref, %impl.elem0.loc7_28.1 [symbolic = %bound_method.loc7_28.3 (constants.%bound_method.9c4)] // CHECK:STDOUT: %specific_impl_fn.loc7_28.1: = specific_impl_function %impl.elem0.loc7_28.1, @Copy.WithSelf.Op(constants.%T.035) [symbolic = %specific_impl_fn.loc7_28.2 (constants.%specific_impl_fn.bdc)] -// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.d5d)] -// CHECK:STDOUT: %.loc7_17.1: ref @Inner.Get.%T.binding.as_type (%T.binding.as_type) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Inner.Get.%T.binding.as_type (%T.binding.as_type) to %.loc7_17.1 = call %bound_method.loc7_28.2(%U.ref) +// CHECK:STDOUT: %bound_method.loc7_28.2: = bound_method %U.ref, %specific_impl_fn.loc7_28.1 [symbolic = %bound_method.loc7_28.4 (constants.%bound_method.992)] +// CHECK:STDOUT: %.loc7_17.1: ref @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @Inner.Get.%T.as_type.loc7_17.1 (%T.as_type) to %.loc7_17.1 = call %bound_method.loc7_28.2(%U.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -227,22 +227,22 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: %Inner.generic => constants.%Inner.generic.994 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner(constants.%T.035, constants.%U.959) { +// CHECK:STDOUT: specific @Inner(constants.%T.035, constants.%U.556) { // CHECK:STDOUT: %T => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %U.loc5_16.1 => constants.%U.959 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%T.as_type +// CHECK:STDOUT: %U.loc5_16.1 => constants.%U.556 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.6ef -// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.ba5 +// CHECK:STDOUT: %Inner.Get.type => constants.%Inner.Get.type.c9e +// CHECK:STDOUT: %Inner.Get => constants.%Inner.Get.a43 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Inner.Get(constants.%T.035, constants.%U.959) { +// CHECK:STDOUT: specific @Inner.Get(constants.%T.035, constants.%U.556) { // CHECK:STDOUT: %T => constants.%T.035 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %.loc7_17.2 => constants.%.076a48.2 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 +// CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%T.as_type +// CHECK:STDOUT: %.loc7_17.2 => constants.%.435d17.2 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Outer(constants.%Copy.facet.de4) { @@ -255,7 +255,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner(constants.%Copy.facet.de4, constants.%int_42.c68) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc5_19.1 => constants.%i32 // CHECK:STDOUT: %U.loc5_16.1 => constants.%int_42.c68 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: @@ -266,7 +266,7 @@ var n: i32 = Outer(i32).Inner(42).Get(); // CHECK:STDOUT: // CHECK:STDOUT: specific @Inner.Get(constants.%Copy.facet.de4, constants.%int_42.c68) { // CHECK:STDOUT: %T => constants.%Copy.facet.de4 -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc7_17.1 => constants.%i32 // CHECK:STDOUT: %.loc7_17.2 => constants.%.ff5 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon index 99059414c131..67b86cec4698 100644 --- a/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon +++ b/toolchain/check/testdata/generic/dot_self_symbolic_type.carbon @@ -88,7 +88,7 @@ fn H(T:! type) { // CHECK:STDOUT: %A.assoc_type.9f4820.2: type = assoc_entity_type @A, @A(%CC) [symbolic] // CHECK:STDOUT: %assoc0.9fa860.2: %A.assoc_type.9f4820.2 = assoc_entity element0, @A.WithSelf.%X [symbolic] // CHECK:STDOUT: %require_complete.f58: = require_complete_type %A.type.ade3d9.2 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.660472.1 [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.660472.1 [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.04abbb.1: = lookup_impl_witness %.Self.660472.1, @A, @A(%CC) [symbolic] // CHECK:STDOUT: %impl.elem0.f51d29.1: type = impl_witness_access %A.lookup_impl_witness.04abbb.1, element0 [symbolic] // CHECK:STDOUT: %A_where.type.4028e0.1: type = facet_type <@A, @A(%CC) where %impl.elem0.f51d29.1 = %CC> [symbolic] @@ -133,8 +133,8 @@ fn H(T:! type) { // CHECK:STDOUT: %A.type.loc11_23.2: type = facet_type <@A, @A(constants.%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.ade3d9.2)] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: @C.F.%A.type.loc11_23.1 (%A.type.ade3d9.2) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.660472.1)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] -// CHECK:STDOUT: %.loc11_31.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] +// CHECK:STDOUT: %.Self.as_type.loc11_31.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.loc11_31.1: type = converted %.Self.ref, %.Self.as_type.loc11_31.2 [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] // CHECK:STDOUT: %.loc11_31.2: @C.F.%A.assoc_type (%A.assoc_type.9f4820.2) = specific_constant @X.%assoc0, @A.WithSelf(constants.%CC, constants.%.Self.660472.1) [symbolic = %assoc0 (constants.%assoc0.9fa860.2)] // CHECK:STDOUT: %X.ref: @C.F.%A.assoc_type (%A.assoc_type.9f4820.2) = name_ref X, %.loc11_31.2 [symbolic = %assoc0 (constants.%assoc0.9fa860.2)] // CHECK:STDOUT: %impl.elem0.loc11_31.2: type = impl_witness_access constants.%A.lookup_impl_witness.04abbb.1, element0 [symbolic = %impl.elem0.loc11_31.1 (constants.%impl.elem0.f51d29.1)] @@ -180,7 +180,7 @@ fn H(T:! type) { // CHECK:STDOUT: %A.type.loc11_23.1: type = facet_type <@A, @A(%CC)> [symbolic = %A.type.loc11_23.1 (constants.%A.type.ade3d9.2)] // CHECK:STDOUT: // CHECK:STDOUT: %require_complete: = require_complete_type %A.type.loc11_23.1 [symbolic = %require_complete (constants.%require_complete.f58)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] +// CHECK:STDOUT: %.Self.as_type.loc11_31.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_31.1 (constants.%.Self.as_type)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%CC) [symbolic = %A.assoc_type (constants.%A.assoc_type.9f4820.2)] // CHECK:STDOUT: %assoc0: @C.F.%A.assoc_type (%A.assoc_type.9f4820.2) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.9fa860.2)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.1, @A, @A(%CC) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.04abbb.1)] @@ -232,7 +232,7 @@ fn H(T:! type) { // CHECK:STDOUT: %A.type.loc11_23.1 => constants.%A.type.ade3d9.2 // CHECK:STDOUT: %.Self.1 => constants.%.Self.660472.1 // CHECK:STDOUT: %require_complete => constants.%require_complete.f58 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %.Self.as_type.loc11_31.1 => constants.%.Self.as_type // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.9f4820.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.9fa860.2 // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.04abbb.1 @@ -304,17 +304,17 @@ fn H(T:! type) { // CHECK:STDOUT: %B.generic: %B.type.5ae = struct_value () [concrete] // CHECK:STDOUT: %.Self.660472.1: %A.type.ade3d9.1 = symbolic_binding .Self [symbolic] // CHECK:STDOUT: %require_complete.f58: = require_complete_type %A.type.ade3d9.1 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.660472.1 [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.660472.1 [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness.04abbb.1: = lookup_impl_witness %.Self.660472.1, @A, @A(%AA) [symbolic] // CHECK:STDOUT: %impl.elem0.f51d29.1: type = impl_witness_access %A.lookup_impl_witness.04abbb.1, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %A_where.type.29f165.1: type = facet_type <@A, @A(%AA) where %impl.elem0.f51d29.1 = %empty_tuple.type> [symbolic] // CHECK:STDOUT: %pattern_type.12a: type = pattern_type %A_where.type.29f165.1 [symbolic] // CHECK:STDOUT: %BB.0b1: %A_where.type.29f165.1 = symbolic_binding BB, 1 [symbolic] -// CHECK:STDOUT: %BB.binding.as_type: type = symbolic_binding_type BB, 1, %BB.0b1 [symbolic] +// CHECK:STDOUT: %BB.as_type: type = facet_access_type %BB.0b1 [symbolic] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %AA [symbolic] // CHECK:STDOUT: %B.type.abcc5d.1: type = facet_type <@B, @B(%ptr.e8f8f9.1)> [symbolic] -// CHECK:STDOUT: %B.impl_witness.bef: = impl_witness @BB.binding.as_type.as.B.impl.%B.impl_witness_table, @BB.binding.as_type.as.B.impl(%AA, %BB.0b1) [symbolic] +// CHECK:STDOUT: %B.impl_witness.94a: = impl_witness @BB.as_type.as.B.impl.%B.impl_witness_table, @BB.as_type.as.B.impl(%AA, %BB.0b1) [symbolic] // CHECK:STDOUT: %require_complete.fe18c9.1: = require_complete_type %B.type.abcc5d.1 [symbolic] // CHECK:STDOUT: %DD: type = symbolic_binding DD, 0 [symbolic] // CHECK:STDOUT: %D.bd6: type = class_type @D, @D(%DD) [symbolic] @@ -338,13 +338,13 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { -// CHECK:STDOUT: impl_decl @BB.binding.as_type.as.B.impl [concrete] { +// CHECK:STDOUT: impl_decl @BB.as_type.as.B.impl [concrete] { // CHECK:STDOUT: %AA.patt: %pattern_type.98f = symbolic_binding_pattern AA, 0 [concrete] -// CHECK:STDOUT: %BB.patt: @BB.binding.as_type.as.B.impl.%pattern_type (%pattern_type.12a) = symbolic_binding_pattern BB, 1 [concrete] +// CHECK:STDOUT: %BB.patt: @BB.as_type.as.B.impl.%pattern_type (%pattern_type.12a) = symbolic_binding_pattern BB, 1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %BB.ref: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = name_ref BB, %BB.loc9_27.1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] -// CHECK:STDOUT: %BB.as_type: type = facet_access_type %BB.ref [symbolic = %BB.binding.as_type (constants.%BB.binding.as_type)] -// CHECK:STDOUT: %.loc9_51: type = converted %BB.ref, %BB.as_type [symbolic = %BB.binding.as_type (constants.%BB.binding.as_type)] +// CHECK:STDOUT: %BB.ref: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = name_ref BB, %BB.loc9_27.1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] +// CHECK:STDOUT: %BB.as_type.loc9_51.1: type = facet_access_type %BB.ref [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] +// CHECK:STDOUT: %.loc9_51: type = converted %BB.ref, %BB.as_type.loc9_51.1 [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] // CHECK:STDOUT: %B.ref: %B.type.5ae = name_ref B, file.%B.decl [concrete = constants.%B.generic] // CHECK:STDOUT: %AA.ref.loc9_59: type = name_ref AA, %AA.loc9_16.1 [symbolic = %AA.loc9_16.2 (constants.%AA)] // CHECK:STDOUT: %ptr.loc9_61.1: type = ptr_type %AA.ref.loc9_59 [symbolic = %ptr.loc9_61.2 (constants.%ptr.e8f8f9.1)] @@ -360,11 +360,11 @@ fn H(T:! type) { // CHECK:STDOUT: %AA.ref.loc9_32: type = name_ref AA, %AA.loc9_16.1 [symbolic = %AA.loc9_16.2 (constants.%AA)] // CHECK:STDOUT: %A.type.loc9_34.1: type = facet_type <@A, @A(constants.%AA)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.ade3d9.1)] // CHECK:STDOUT: -// CHECK:STDOUT: %.Self.ref: @BB.binding.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.ade3d9.1) = name_ref .Self, %.Self.2 [symbolic = %.Self.4 (constants.%.Self.660472.1)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] -// CHECK:STDOUT: %.loc9_42.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] -// CHECK:STDOUT: %.loc9_42.2: @BB.binding.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A.WithSelf(constants.%AA, constants.%.Self.660472.1) [symbolic = %assoc0 (constants.%assoc0)] -// CHECK:STDOUT: %X.ref: @BB.binding.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = name_ref X, %.loc9_42.2 [symbolic = %assoc0 (constants.%assoc0)] +// CHECK:STDOUT: %.Self.ref: @BB.as_type.as.B.impl.%A.type.loc9_34.2 (%A.type.ade3d9.1) = name_ref .Self, %.Self.2 [symbolic = %.Self.4 (constants.%.Self.660472.1)] +// CHECK:STDOUT: %.Self.as_type.loc9_42.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.loc9_42.1: type = converted %.Self.ref, %.Self.as_type.loc9_42.1 [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] +// CHECK:STDOUT: %.loc9_42.2: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = specific_constant @X.%assoc0, @A.WithSelf(constants.%AA, constants.%.Self.660472.1) [symbolic = %assoc0 (constants.%assoc0)] +// CHECK:STDOUT: %X.ref: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = name_ref X, %.loc9_42.2 [symbolic = %assoc0 (constants.%assoc0)] // CHECK:STDOUT: %impl.elem0.loc9_42.1: type = impl_witness_access constants.%A.lookup_impl_witness.04abbb.1, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.f51d29.1)] // CHECK:STDOUT: %.loc9_48.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc9_48.2: type = converted %.loc9_48.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] @@ -373,34 +373,34 @@ fn H(T:! type) { // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc9_42.1, %.loc9_48.2 // CHECK:STDOUT: } // CHECK:STDOUT: } -// CHECK:STDOUT: %BB.loc9_27.1: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] +// CHECK:STDOUT: %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @BB.binding.as_type.as.B.impl(%AA.loc9_16.1: type, %BB.loc9_27.1: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1)) { +// CHECK:STDOUT: generic impl @BB.as_type.as.B.impl(%AA.loc9_16.1: type, %BB.loc9_27.1: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1)) { // CHECK:STDOUT: %AA.loc9_16.2: type = symbolic_binding AA, 0 [symbolic = %AA.loc9_16.2 (constants.%AA)] // CHECK:STDOUT: %A.type.loc9_34.2: type = facet_type <@A, @A(%AA.loc9_16.2)> [symbolic = %A.type.loc9_34.2 (constants.%A.type.ade3d9.1)] // CHECK:STDOUT: // CHECK:STDOUT: %require_complete.loc9_42: = require_complete_type %A.type.loc9_34.2 [symbolic = %require_complete.loc9_42 (constants.%require_complete.f58)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.4 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type)] +// CHECK:STDOUT: %.Self.as_type.loc9_42.2: type = facet_access_type %.Self.4 [symbolic = %.Self.as_type.loc9_42.2 (constants.%.Self.as_type)] // CHECK:STDOUT: %A.assoc_type: type = assoc_entity_type @A, @A(%AA.loc9_16.2) [symbolic = %A.assoc_type (constants.%A.assoc_type)] -// CHECK:STDOUT: %assoc0: @BB.binding.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0)] +// CHECK:STDOUT: %assoc0: @BB.as_type.as.B.impl.%A.assoc_type (%A.assoc_type) = assoc_entity element0, @A.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.4, @A, @A(%AA.loc9_16.2) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness.04abbb.1)] // CHECK:STDOUT: %impl.elem0.loc9_42.2: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_42.2 (constants.%impl.elem0.f51d29.1)] // CHECK:STDOUT: %A_where.type: type = facet_type <@A, @A(%AA.loc9_16.2) where %impl.elem0.loc9_42.2 = constants.%empty_tuple.type> [symbolic = %A_where.type (constants.%A_where.type.29f165.1)] -// CHECK:STDOUT: %BB.loc9_27.2: @BB.binding.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] +// CHECK:STDOUT: %BB.loc9_27.2: @BB.as_type.as.B.impl.%A_where.type (%A_where.type.29f165.1) = symbolic_binding BB, 1 [symbolic = %BB.loc9_27.2 (constants.%BB.0b1)] // CHECK:STDOUT: %pattern_type: type = pattern_type %A_where.type [symbolic = %pattern_type (constants.%pattern_type.12a)] -// CHECK:STDOUT: %BB.binding.as_type: type = symbolic_binding_type BB, 1, %BB.loc9_27.2 [symbolic = %BB.binding.as_type (constants.%BB.binding.as_type)] +// CHECK:STDOUT: %BB.as_type.loc9_51.2: type = facet_access_type %BB.loc9_27.2 [symbolic = %BB.as_type.loc9_51.2 (constants.%BB.as_type)] // CHECK:STDOUT: %ptr.loc9_61.2: type = ptr_type %AA.loc9_16.2 [symbolic = %ptr.loc9_61.2 (constants.%ptr.e8f8f9.1)] // CHECK:STDOUT: %B.type.loc9_62.2: type = facet_type <@B, @B(%ptr.loc9_61.2)> [symbolic = %B.type.loc9_62.2 (constants.%B.type.abcc5d.1)] -// CHECK:STDOUT: %B.impl_witness.loc9_64.2: = impl_witness %B.impl_witness_table, @BB.binding.as_type.as.B.impl(%AA.loc9_16.2, %BB.loc9_27.2) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.bef)] +// CHECK:STDOUT: %B.impl_witness.loc9_64.2: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(%AA.loc9_16.2, %BB.loc9_27.2) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.94a)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc9_62: = require_complete_type %B.type.loc9_62.2 [symbolic = %require_complete.loc9_62 (constants.%require_complete.fe18c9.1)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc9_51 as %B.type.loc9_62.1 { -// CHECK:STDOUT: %B.impl_witness_table = impl_witness_table (), @BB.binding.as_type.as.B.impl [concrete] -// CHECK:STDOUT: %B.impl_witness.loc9_64.1: = impl_witness %B.impl_witness_table, @BB.binding.as_type.as.B.impl(constants.%AA, constants.%BB.0b1) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.bef)] +// CHECK:STDOUT: %B.impl_witness_table = impl_witness_table (), @BB.as_type.as.B.impl [concrete] +// CHECK:STDOUT: %B.impl_witness.loc9_64.1: = impl_witness %B.impl_witness_table, @BB.as_type.as.B.impl(constants.%AA, constants.%BB.0b1) [symbolic = %B.impl_witness.loc9_64.2 (constants.%B.impl_witness.94a)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %B.impl_witness.loc9_64.1 @@ -449,12 +449,12 @@ fn H(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @BB.binding.as_type.as.B.impl(constants.%AA, constants.%BB.0b1) { +// CHECK:STDOUT: specific @BB.as_type.as.B.impl(constants.%AA, constants.%BB.0b1) { // CHECK:STDOUT: %AA.loc9_16.2 => constants.%AA // CHECK:STDOUT: %A.type.loc9_34.2 => constants.%A.type.ade3d9.1 // CHECK:STDOUT: %.Self.4 => constants.%.Self.660472.1 // CHECK:STDOUT: %require_complete.loc9_42 => constants.%require_complete.f58 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %.Self.as_type.loc9_42.2 => constants.%.Self.as_type // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type // CHECK:STDOUT: %assoc0 => constants.%assoc0 // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.lookup_impl_witness.04abbb.1 @@ -462,10 +462,10 @@ fn H(T:! type) { // CHECK:STDOUT: %A_where.type => constants.%A_where.type.29f165.1 // CHECK:STDOUT: %BB.loc9_27.2 => constants.%BB.0b1 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.12a -// CHECK:STDOUT: %BB.binding.as_type => constants.%BB.binding.as_type +// CHECK:STDOUT: %BB.as_type.loc9_51.2 => constants.%BB.as_type // CHECK:STDOUT: %ptr.loc9_61.2 => constants.%ptr.e8f8f9.1 // CHECK:STDOUT: %B.type.loc9_62.2 => constants.%B.type.abcc5d.1 -// CHECK:STDOUT: %B.impl_witness.loc9_64.2 => constants.%B.impl_witness.bef +// CHECK:STDOUT: %B.impl_witness.loc9_64.2 => constants.%B.impl_witness.94a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @D(constants.%DD) { diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index c8777b68589c..7b054e0750e1 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -256,15 +256,15 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %pattern_type.cac: type = pattern_type %Destroy.type [concrete] // CHECK:STDOUT: %T.765: %Destroy.type = symbolic_binding T, 0, template [template] -// CHECK:STDOUT: %T.binding.as_type.140: type = symbolic_binding_type T, 0, template, %T.765 [template] -// CHECK:STDOUT: %pattern_type.a64db1.2: type = pattern_type %T.binding.as_type.140 [template] +// CHECK:STDOUT: %T.as_type.2e9: type = facet_access_type %T.765 [template] +// CHECK:STDOUT: %pattern_type.eca0e4.2: type = pattern_type %T.as_type.2e9 [template] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.6d1: = require_complete_type %T.binding.as_type.140 [template] +// CHECK:STDOUT: %require_complete.6ff: = require_complete_type %T.as_type.2e9 [template] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.112: type = facet_type <@ImplicitAs, @ImplicitAs(%T.binding.as_type.140)> [template] +// CHECK:STDOUT: %ImplicitAs.type.b9a: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.2e9)> [template] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -301,8 +301,8 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.cac = symbolic_binding_pattern T, 0, template [concrete] -// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.a64db1.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.a64db1.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @F.%pattern_type (%pattern_type.eca0e4.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.eca0e4.2) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc4_23: type = splice_block %Destroy.ref [concrete = constants.%Destroy.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -310,24 +310,24 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %Destroy.ref: type = name_ref Destroy, imports.%Core.Destroy [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc4_16.2: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.765)] -// CHECK:STDOUT: %x.param: @F.%T.binding.as_type (%T.binding.as_type.140) = value_param call_param0 -// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.2 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] { +// CHECK:STDOUT: %x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = value_param call_param0 +// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] { // CHECK:STDOUT: %T.ref.loc4: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.765)] -// CHECK:STDOUT: %T.as_type.loc4: type = facet_access_type %T.ref.loc4 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc4_36.2: type = converted %T.ref.loc4, %T.as_type.loc4 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] +// CHECK:STDOUT: %T.as_type.loc4_36.2: type = facet_access_type %T.ref.loc4 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc4_36.2: type = converted %T.ref.loc4, %T.as_type.loc4_36.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @F.%T.binding.as_type (%T.binding.as_type.140) = value_binding x, %x.param +// CHECK:STDOUT: %x: @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_16.2: %Destroy.type) { // CHECK:STDOUT: %T.loc4_16.1: %Destroy.type = symbolic_binding T, 0, template [template = %T.loc4_16.1 (constants.%T.765)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, template, %T.loc4_16.1 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [template = %pattern_type (constants.%pattern_type.a64db1.2)] +// CHECK:STDOUT: %T.as_type.loc4_36.1: type = facet_access_type %T.loc4_16.1 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc4_36.1 [template = %pattern_type (constants.%pattern_type.eca0e4.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [template = %require_complete (constants.%require_complete.6d1)] -// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.binding.as_type)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.112)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc4_36.1 [template = %require_complete (constants.%require_complete.6ff)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.as_type.loc4_36.1)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.b9a)] // CHECK:STDOUT: %.loc14_3.3: = access_member_action %ImplicitAs.type.loc14_3.1, Convert [template] // CHECK:STDOUT: %.loc14_3.4: type = type_of_inst %.loc14_3.3 [template] // CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%T.loc4_16.1) [template = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.cb2e47.2)] @@ -336,30 +336,30 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: %impl.elem0.loc14_3.2: @F.%.loc14_3.5 (%.d5f) = impl_witness_access %Destroy.lookup_impl_witness, element0 [template = %impl.elem0.loc14_3.2 (constants.%impl.elem0.a6b)] // CHECK:STDOUT: %specific_impl_fn.loc14_3.2: = specific_impl_function %impl.elem0.loc14_3.2, @Destroy.WithSelf.Op(%T.loc4_16.1) [template = %specific_impl_fn.loc14_3.2 (constants.%specific_impl_fn.761)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @F.%T.binding.as_type (%T.binding.as_type.140)) { +// CHECK:STDOUT: fn(%x.param: @F.%T.as_type.loc4_36.1 (%T.as_type.2e9)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.a64db1.2) = ref_binding_pattern v [concrete] -// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.a64db1.2) = var_pattern %v.patt [concrete] +// CHECK:STDOUT: %v.patt: @F.%pattern_type (%pattern_type.eca0e4.2) = ref_binding_pattern v [concrete] +// CHECK:STDOUT: %v.var_patt: @F.%pattern_type (%pattern_type.eca0e4.2) = var_pattern %v.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %v.var: ref @F.%T.binding.as_type (%T.binding.as_type.140) = var %v.var_patt +// CHECK:STDOUT: %v.var: ref @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = var %v.var_patt // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.binding.as_type.140)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.112)] +// CHECK:STDOUT: %ImplicitAs.type.loc14_3.1: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%T.as_type.2e9)> [template = %ImplicitAs.type.loc14_3.2 (constants.%ImplicitAs.type.b9a)] // CHECK:STDOUT: %.loc14_3.1: @F.%.loc14_3.4 (@F.%.loc14_3.4) = splice_inst %.loc14_3.3 -// CHECK:STDOUT: %.loc14_3.2: @F.%T.binding.as_type (%T.binding.as_type.140) = converted %int_0, [concrete = ] +// CHECK:STDOUT: %.loc14_3.2: @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = converted %int_0, [concrete = ] // CHECK:STDOUT: assign %v.var, -// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] { +// CHECK:STDOUT: %.loc14_17.1: type = splice_block %.loc14_17.2 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] { // CHECK:STDOUT: %T.ref.loc14: %Destroy.type = name_ref T, %T.loc4_16.2 [template = %T.loc4_16.1 (constants.%T.765)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] -// CHECK:STDOUT: %.loc14_17.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.binding.as_type (constants.%T.binding.as_type.140)] +// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] +// CHECK:STDOUT: %.loc14_17.2: type = converted %T.ref.loc14, %T.as_type.loc14 [template = %T.as_type.loc4_36.1 (constants.%T.as_type.2e9)] // CHECK:STDOUT: } -// CHECK:STDOUT: %v: ref @F.%T.binding.as_type (%T.binding.as_type.140) = ref_binding v, %v.var +// CHECK:STDOUT: %v: ref @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = ref_binding v, %v.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %w.patt: %pattern_type.7ce = ref_binding_pattern w [concrete] // CHECK:STDOUT: %w.var_patt: %pattern_type.7ce = var_pattern %w.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %w.var: ref %i32 = var %w.var_patt -// CHECK:STDOUT: %x.ref: @F.%T.binding.as_type (%T.binding.as_type.140) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @F.%T.as_type.loc4_36.1 (%T.as_type.2e9) = name_ref x, %x // CHECK:STDOUT: %.loc22: %i32 = converted %x.ref, [concrete = ] // CHECK:STDOUT: assign %w.var, // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -384,7 +384,7 @@ fn F[template T:! Core.Destroy](x: T) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.765) { // CHECK:STDOUT: %T.loc4_16.1 => constants.%T.765 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.140 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a64db1.2 +// CHECK:STDOUT: %T.as_type.loc4_36.1 => constants.%T.as_type.2e9 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.eca0e4.2 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/generic/var_param.carbon b/toolchain/check/testdata/generic/var_param.carbon index 06eaa1b3edfa..7273e4b07099 100644 --- a/toolchain/check/testdata/generic/var_param.carbon +++ b/toolchain/check/testdata/generic/var_param.carbon @@ -43,11 +43,11 @@ fn Test(x: i32) { // CHECK:STDOUT: %complete_type.f8a: = complete_type_witness %i32.builtin [concrete] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T.651: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.3af: type = symbolic_binding_type T, 0, %T.651 [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %T.binding.as_type.3af [symbolic] +// CHECK:STDOUT: %T.as_type.066: type = facet_access_type %T.651 [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %T.as_type.066 [symbolic] // CHECK:STDOUT: %TestOp.type: type = fn_type @TestOp [concrete] // CHECK:STDOUT: %TestOp: %TestOp.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.2b8: = require_complete_type %T.binding.as_type.3af [symbolic] +// CHECK:STDOUT: %require_complete.6bb: = require_complete_type %T.as_type.066 [symbolic] // CHECK:STDOUT: %TestOp.specific_fn: = specific_function %TestOp, @TestOp(%I.facet) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.824: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] @@ -71,33 +71,33 @@ fn Test(x: i32) { // CHECK:STDOUT: file { // CHECK:STDOUT: %TestOp.decl: %TestOp.type = fn_decl @TestOp [concrete = constants.%TestOp] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.patt: @TestOp.%pattern_type (%pattern_type.422) = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.param_patt: @TestOp.%pattern_type (%pattern_type.422) = var_param_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: @TestOp.%pattern_type (%pattern_type.f4e) = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.param_patt: @TestOp.%pattern_type (%pattern_type.f4e) = var_param_pattern %x.patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_15: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc22_12.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.651)] -// CHECK:STDOUT: %x.param: ref @TestOp.%T.binding.as_type (%T.binding.as_type.3af) = ref_param call_param0 -// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] { +// CHECK:STDOUT: %x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.066) = ref_param call_param0 +// CHECK:STDOUT: %.loc22_32.1: type = splice_block %.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.066)] { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc22_12.2 [symbolic = %T.loc22_12.1 (constants.%T.651)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] +// CHECK:STDOUT: %T.as_type.loc22_32.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.066)] +// CHECK:STDOUT: %.loc22_32.2: type = converted %T.ref, %T.as_type.loc22_32.2 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.066)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: ref @TestOp.%T.binding.as_type (%T.binding.as_type.3af) = ref_binding x, %x.param +// CHECK:STDOUT: %x: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.066) = ref_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @TestOp(%T.loc22_12.2: %I.type) { // CHECK:STDOUT: %T.loc22_12.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc22_12.1 (constants.%T.651)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc22_12.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %T.as_type.loc22_32.1: type = facet_access_type %T.loc22_12.1 [symbolic = %T.as_type.loc22_32.1 (constants.%T.as_type.066)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_32.1 [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.2b8)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_32.1 [symbolic = %require_complete (constants.%require_complete.6bb)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: ref @TestOp.%T.binding.as_type (%T.binding.as_type.3af)) { +// CHECK:STDOUT: fn(%x.param: ref @TestOp.%T.as_type.loc22_32.1 (%T.as_type.066)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -132,13 +132,13 @@ fn Test(x: i32) { // CHECK:STDOUT: // CHECK:STDOUT: specific @TestOp(constants.%T.651) { // CHECK:STDOUT: %T.loc22_12.1 => constants.%T.651 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3af -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%T.as_type.066 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @TestOp(constants.%I.facet) { // CHECK:STDOUT: %T.loc22_12.1 => constants.%I.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%i32 +// CHECK:STDOUT: %T.as_type.loc22_32.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/assoc_const_self.carbon b/toolchain/check/testdata/impl/assoc_const_self.carbon index afcde64fa908..763e7ea2f579 100644 --- a/toolchain/check/testdata/impl/assoc_const_self.carbon +++ b/toolchain/check/testdata/impl/assoc_const_self.carbon @@ -105,27 +105,27 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.490: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.f13: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type.ec3: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] -// CHECK:STDOUT: %I.impl_witness.df7: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %I_where.type.2d8: type = facet_type <@I where %impl.elem0 = %empty_struct> [concrete] +// CHECK:STDOUT: %I.impl_witness.a68: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete] -// CHECK:STDOUT: %I.facet.47f: %I.type = facet_value %empty_struct_type, (%I.impl_witness.df7) [concrete] +// CHECK:STDOUT: %I.facet.40a: %I.type = facet_value %empty_struct_type, (%I.impl_witness.a68) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] -// CHECK:STDOUT: %I_where.type.b52: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] -// CHECK:STDOUT: %I.impl_witness.550: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] +// CHECK:STDOUT: %I_where.type.1f4: type = facet_type <@I where %impl.elem0 = %int_0.5c6> [concrete] +// CHECK:STDOUT: %I.impl_witness.f6a: = impl_witness @i32.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Int.type.facet: %type = facet_value %i32, () [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] @@ -143,7 +143,7 @@ fn CallF() { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %int_0.5c6, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_0.6a9: %i32 = int_value 0 [concrete] -// CHECK:STDOUT: %I.facet.608: %I.type = facet_value %i32, (%I.impl_witness.550) [concrete] +// CHECK:STDOUT: %I.facet.05e: %I.type = facet_value %i32, (%I.impl_witness.f6a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -172,14 +172,14 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.490] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.f13] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_26.2: %empty_struct_type = converted %.loc8_26.1, %empty_struct [concrete = constants.%empty_struct] -// CHECK:STDOUT: %.loc8_14: type = where_expr %.Self [concrete = constants.%I_where.type.ec3] { +// CHECK:STDOUT: %.loc8_14: type = where_expr %.Self [concrete = constants.%I_where.type.2d8] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc8_26.2 // CHECK:STDOUT: } @@ -189,12 +189,12 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.490] -// CHECK:STDOUT: %impl.elem0.loc10_21: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.f13] +// CHECK:STDOUT: %impl.elem0.loc10_21: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0.5c6] -// CHECK:STDOUT: %.loc10_15.1: type = where_expr %.Self [concrete = constants.%I_where.type.b52] { +// CHECK:STDOUT: %.loc10_15.1: type = where_expr %.Self [concrete = constants.%I_where.type.1f4] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_rewrite %impl.elem0.loc10_21, %int_0 // CHECK:STDOUT: } @@ -206,8 +206,8 @@ fn CallF() { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.binding.as_type (%Self.binding.as_type.d31) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.490] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.a26) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.f13] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -220,7 +220,7 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: impl @empty_struct_type.as.I.impl: %.loc8_7.2 as %.loc8_14 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @empty_struct_type.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.df7] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.a68] // CHECK:STDOUT: %impl_witness_assoc_constant: %empty_struct_type = impl_witness_assoc_constant constants.%empty_struct [concrete = constants.%empty_struct] // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -229,7 +229,7 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: impl @i32.as.I.impl: %i32 as %.loc10_15.1 { // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%impl_witness_assoc_constant), @i32.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.550] +// CHECK:STDOUT: %I.impl_witness: = impl_witness %I.impl_witness_table [concrete = constants.%I.impl_witness.f6a] // CHECK:STDOUT: %impl.elem0.loc10_15: %.545 = impl_witness_access constants.%ImplicitAs.impl_witness.6bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5] // CHECK:STDOUT: %bound_method.loc10_15.1: = bound_method constants.%int_0.5c6, %impl.elem0.loc10_15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc10_15, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] @@ -246,37 +246,37 @@ fn CallF() { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self.ab9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%empty_struct.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.47f) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.40a) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.47f -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self => constants.%I.facet.40a +// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Int.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Int.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 +// CHECK:STDOUT: %Self.as_type => constants.%i32 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.608) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.05e) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.608 -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 +// CHECK:STDOUT: %Self => constants.%I.facet.05e +// CHECK:STDOUT: %Self.as_type => constants.%i32 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_assoc_const_mismatch.carbon @@ -284,15 +284,15 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.490: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.f13: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %int_0> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @empty_struct_type.as.I.impl.%I.impl_witness_table [concrete] @@ -325,10 +325,10 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc15_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.490] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc15_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.f13] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: %.loc15_14.1: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type @@ -342,8 +342,8 @@ fn CallF() { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.binding.as_type (%Self.binding.as_type.d31) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.490] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.a26) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.f13] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -367,25 +367,25 @@ fn CallF() { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self.ab9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%empty_struct.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%empty_struct.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self.as_type => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_assoc_const_not_constant_after_conversion.carbon @@ -393,9 +393,9 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.490: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.f13: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -415,9 +415,9 @@ fn CallF() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %empty_tuple> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -458,10 +458,10 @@ fn CallF() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.490] -// CHECK:STDOUT: %impl.elem0.loc18_19: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.f13] +// CHECK:STDOUT: %impl.elem0.loc18_19: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc18_25.2: %empty_tuple.type = converted %.loc18_25.1, %empty_tuple [concrete = constants.%empty_tuple] @@ -477,8 +477,8 @@ fn CallF() { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.binding.as_type (%Self.binding.as_type.d31) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.490] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.a26) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.f13] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -551,25 +551,25 @@ fn CallF() { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self.ab9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%.Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%C.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_monomorphization_failure.carbon @@ -586,10 +586,10 @@ fn CallF() { // CHECK:STDOUT: %I.generic: %I.type.609 = struct_value () [concrete] // CHECK:STDOUT: %I.type.68b: type = facet_type <@I, @I(%N)> [symbolic] // CHECK:STDOUT: %Self.cad: %I.type.68b = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.6f3: type = symbolic_binding_type Self, 1, %Self.cad [symbolic] -// CHECK:STDOUT: %array_type: type = array_type %N, %Self.binding.as_type.6f3 [symbolic] +// CHECK:STDOUT: %Self.as_type.66d: type = facet_access_type %Self.cad [symbolic] +// CHECK:STDOUT: %array_type: type = array_type %N, %Self.as_type.66d [symbolic] // CHECK:STDOUT: %I.assoc_type.223: type = assoc_entity_type @I, @I(%N) [symbolic] -// CHECK:STDOUT: %assoc0.b3d: %I.assoc_type.223 = assoc_entity element0, @I.WithSelf.%V [symbolic] +// CHECK:STDOUT: %assoc0.f93: %I.assoc_type.223 = assoc_entity element0, @I.WithSelf.%V [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete] @@ -606,8 +606,8 @@ fn CallF() { // CHECK:STDOUT: %.Self.6e0: %I.type.54b = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Self.575: %I.type.54b = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.assoc_type.e1a: type = assoc_entity_type @I, @I(%int_-1) [concrete] -// CHECK:STDOUT: %assoc0.578: %I.assoc_type.e1a = assoc_entity element0, @I.WithSelf.%V [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.6e0 [symbolic_self] +// CHECK:STDOUT: %assoc0.948: %I.assoc_type.e1a = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.6e0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -657,8 +657,8 @@ fn CallF() { // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(constants.%int_-1)> [concrete = constants.%I.type.54b] // CHECK:STDOUT: %.Self: %I.type.54b = symbolic_binding .Self [symbolic_self = constants.%.Self.6e0] // CHECK:STDOUT: %.Self.ref: %I.type.54b = name_ref .Self, %.Self [symbolic_self = constants.%.Self.6e0] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc15_24: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc15_24: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %V.ref: = name_ref V, [concrete = ] // CHECK:STDOUT: %.loc15_30: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc15_18: type = where_expr %.Self [concrete = ] { @@ -681,7 +681,7 @@ fn CallF() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %V: @I.WithSelf.%array_type (%array_type) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.223) = assoc_entity element0, @I.WithSelf.%V [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.b3d)] +// CHECK:STDOUT: %assoc0: @I.WithSelf.%I.assoc_type (%I.assoc_type.223) = assoc_entity element0, @I.WithSelf.%V [symbolic = @I.WithSelf.%assoc0 (constants.%assoc0.f93)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -719,10 +719,10 @@ fn CallF() { // CHECK:STDOUT: %N => constants.%int_-1 // CHECK:STDOUT: %I.type => constants.%I.type.54b // CHECK:STDOUT: %Self => constants.%Self.cad -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.6f3 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.66d // CHECK:STDOUT: %array_type => // CHECK:STDOUT: %I.assoc_type => constants.%I.assoc_type.e1a -// CHECK:STDOUT: %assoc0 => constants.%assoc0.578 +// CHECK:STDOUT: %assoc0 => constants.%assoc0.948 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_constrained_fn.carbon @@ -730,9 +730,9 @@ fn CallF() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] -// CHECK:STDOUT: %assoc0.490: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] +// CHECK:STDOUT: %assoc0.f13: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.1dc: %I.type = symbolic_binding .Self [symbolic_self] @@ -740,12 +740,12 @@ fn CallF() { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] -// CHECK:STDOUT: %ImplicitAs.type.d65: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.binding.as_type)> [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %ImplicitAs.type.a48: type = facet_type <@ImplicitAs, @ImplicitAs(%.Self.as_type)> [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness.c4b: = lookup_impl_witness %.Self.1dc, @I [symbolic_self] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access %I.lookup_impl_witness.c4b, element0 [symbolic_self] -// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %empty_struct_type impls @ImplicitAs, @ImplicitAs(%.Self.binding.as_type) and %impl.elem0 = %empty_struct> [symbolic_self] -// CHECK:STDOUT: %pattern_type.81c: type = pattern_type %I_where.type [symbolic_self] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access %I.lookup_impl_witness.c4b, element0 [symbolic_self] +// CHECK:STDOUT: %I_where.type: type = facet_type <@I where %empty_struct_type impls @ImplicitAs, @ImplicitAs(%.Self.as_type) and %impl.elem0 = %empty_struct> [symbolic_self] +// CHECK:STDOUT: %pattern_type.058: type = pattern_type %I_where.type [symbolic_self] // CHECK:STDOUT: %T: %I_where.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] @@ -772,7 +772,7 @@ fn CallF() { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { -// CHECK:STDOUT: %T.patt: %pattern_type.81c = symbolic_binding_pattern T, 0 [concrete] +// CHECK:STDOUT: %T.patt: %pattern_type.058 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_12.1: type = splice_block %.loc8_12.2 [symbolic_self = constants.%I_where.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -782,15 +782,15 @@ fn CallF() { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %ImplicitAs.ref: %ImplicitAs.type.cc7 = name_ref ImplicitAs, imports.%Core.ImplicitAs [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: %.Self.ref.loc8_43: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type.loc8_48: type = facet_access_type %.Self.ref.loc8_43 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_48: type = converted %.Self.ref.loc8_43, %.Self.as_type.loc8_48 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.binding.as_type)> [symbolic_self = constants.%ImplicitAs.type.d65] +// CHECK:STDOUT: %.Self.as_type.loc8_48: type = facet_access_type %.Self.ref.loc8_43 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_48: type = converted %.Self.ref.loc8_43, %.Self.as_type.loc8_48 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(constants.%.Self.as_type)> [symbolic_self = constants.%ImplicitAs.type.a48] // CHECK:STDOUT: %.loc8_19.2: type = converted %.loc8_19.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc8_54: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type.loc8_54: type = facet_access_type %.Self.ref.loc8_54 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_54: type = converted %.Self.ref.loc8_54, %.Self.as_type.loc8_54 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.490] -// CHECK:STDOUT: %impl.elem0: %.Self.binding.as_type = impl_witness_access constants.%I.lookup_impl_witness.c4b, element0 [symbolic_self = constants.%impl.elem0] +// CHECK:STDOUT: %.Self.as_type.loc8_54: type = facet_access_type %.Self.ref.loc8_54 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_54: type = converted %.Self.ref.loc8_54, %.Self.as_type.loc8_54 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %V.ref: %I.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.f13] +// CHECK:STDOUT: %impl.elem0: %.Self.as_type = impl_witness_access constants.%I.lookup_impl_witness.c4b, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_60.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc8_60.2: %empty_struct_type = converted %.loc8_60.1, %empty_struct [concrete = constants.%empty_struct] @@ -810,8 +810,8 @@ fn CallF() { // CHECK:STDOUT: %I.WithSelf.decl = interface_with_self_decl @I [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %V: @I.WithSelf.%Self.binding.as_type (%Self.binding.as_type.d31) = assoc_const_decl @V [concrete] { -// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.490] +// CHECK:STDOUT: %V: @I.WithSelf.%Self.as_type (%Self.as_type.a26) = assoc_const_decl @V [concrete] { +// CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%V [concrete = constants.%assoc0.f13] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -838,13 +838,13 @@ fn CallF() { // CHECK:STDOUT: specific @I.WithSelf(constants.%Self.ab9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.a26 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%.Self.1dc) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%.Self.1dc -// CHECK:STDOUT: %Self.binding.as_type => constants.%.Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%.Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { diff --git a/toolchain/check/testdata/impl/compound.carbon b/toolchain/check/testdata/impl/compound.carbon index c068503835d6..2a048bd3ca57 100644 --- a/toolchain/check/testdata/impl/compound.carbon +++ b/toolchain/check/testdata/impl/compound.carbon @@ -131,8 +131,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.595 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9fe: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.9fe = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8de: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.446: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self) [symbolic] @@ -169,21 +169,21 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.446) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.446) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_26.2 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.WithSelf.Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.WithSelf.Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -204,12 +204,12 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.446)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -222,8 +222,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.8de +// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.446 // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -363,8 +363,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b3a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.738) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.1de: %ImplicitAs.WithSelf.Convert.type.b3a = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.738 [symbolic] -// CHECK:STDOUT: %pattern_type.e9a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.738 [symbolic] +// CHECK:STDOUT: %pattern_type.9e2: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.type.282: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance2.type)> [concrete] // CHECK:STDOUT: %Self.df1: %ImplicitAs.type.282 = symbolic_binding Self, 1 [symbolic] @@ -484,8 +484,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.031)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.031) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.738)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e9a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.9e2)] // CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -520,8 +520,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.031 // CHECK:STDOUT: %Self => constants.%Self.738 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e9a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.9e2 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -576,8 +576,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b3a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self.738) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.1de: %ImplicitAs.WithSelf.Convert.type.b3a = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.738 [symbolic] -// CHECK:STDOUT: %pattern_type.e9a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.738 [symbolic] +// CHECK:STDOUT: %pattern_type.9e2: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.type.deb: type = facet_type <@ImplicitAs, @ImplicitAs(%NonInstance3.type)> [concrete] // CHECK:STDOUT: %Self.9cf: %ImplicitAs.type.deb = symbolic_binding Self, 1 [symbolic] @@ -699,8 +699,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.031)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.031) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.738)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e9a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.9e2)] // CHECK:STDOUT: %.1: Core.Form = init_form %Dest [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %Dest [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -735,8 +735,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.031 // CHECK:STDOUT: %Self => constants.%Self.738 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e9a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.9e2 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -765,8 +765,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Instance1.type: type = facet_type <@Instance1> [concrete] // CHECK:STDOUT: %Self: %Instance1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.97b: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.50c: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance1.WithSelf.G1.type.291: type = fn_type @Instance1.WithSelf.G1, @Instance1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Instance1.WithSelf.G1.db7: %Instance1.WithSelf.G1.type.291 = struct_value () [symbolic] @@ -837,16 +837,16 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance1.WithSelf.G1.decl: @Instance1.WithSelf.%Instance1.WithSelf.G1.type (%Instance1.WithSelf.G1.type.291) = fn_decl @Instance1.WithSelf.G1 [symbolic = @Instance1.WithSelf.%Instance1.WithSelf.G1 (constants.%Instance1.WithSelf.G1.db7)] { -// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.97b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.50c) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance1.WithSelf.G1.%pattern_type (%pattern_type.50c) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance1.WithSelf.G1.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance1.type = name_ref Self, @Instance1.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Instance1.WithSelf.G1.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Instance1.WithSelf.G1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance1.assoc_type = assoc_entity element0, %Instance1.WithSelf.G1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -877,10 +877,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance1.WithSelf.G1(@Instance1.%Self: %Instance1.type) { // CHECK:STDOUT: %Self: %Instance1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.97b)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.50c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance1.WithSelf.G1.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance1.WithSelf.G1.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.d.as.Instance1.impl.G1(%self.param: %struct_type.d) { @@ -925,8 +925,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf.G1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.97b +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.50c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf(constants.%Instance1.facet) { @@ -938,7 +938,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance1.WithSelf.G1(constants.%Instance1.facet) { // CHECK:STDOUT: %Self => constants.%Instance1.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%struct_type.d +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.515 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -947,8 +947,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Instance2.type: type = facet_type <@Instance2> [concrete] // CHECK:STDOUT: %Self: %Instance2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a35: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.557: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance2.WithSelf.G2.type.e15: type = fn_type @Instance2.WithSelf.G2, @Instance2.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Instance2.WithSelf.G2.6c8: %Instance2.WithSelf.G2.type.e15 = struct_value () [symbolic] @@ -988,16 +988,16 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance2.WithSelf.G2.decl: @Instance2.WithSelf.%Instance2.WithSelf.G2.type (%Instance2.WithSelf.G2.type.e15) = fn_decl @Instance2.WithSelf.G2 [symbolic = @Instance2.WithSelf.%Instance2.WithSelf.G2 (constants.%Instance2.WithSelf.G2.6c8)] { -// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.a35) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.557) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance2.WithSelf.G2.%pattern_type (%pattern_type.557) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance2.WithSelf.G2.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance2.type = name_ref Self, @Instance2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Instance2.WithSelf.G2.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Instance2.WithSelf.G2.%Self.as_type.loc4_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance2.assoc_type = assoc_entity element0, %Instance2.WithSelf.G2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1028,10 +1028,10 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance2.WithSelf.G2(@Instance2.%Self: %Instance2.type) { // CHECK:STDOUT: %Self: %Instance2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.a35)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.557)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance2.WithSelf.G2.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance2.WithSelf.G2.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.e.as.Instance2.impl.G2(%self.param: %struct_type.e) { @@ -1058,8 +1058,8 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf.G2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a35 +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.557 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf(constants.%Instance2.facet) { @@ -1071,7 +1071,7 @@ fn InstanceCallFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance2.WithSelf.G2(constants.%Instance2.facet) { // CHECK:STDOUT: %Self => constants.%Instance2.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%struct_type.e +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%struct_type.e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.efd // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/extend_impl_generic.carbon b/toolchain/check/testdata/impl/extend_impl_generic.carbon index 1ffe3714dff1..079e8eae1bac 100644 --- a/toolchain/check/testdata/impl/extend_impl_generic.carbon +++ b/toolchain/check/testdata/impl/extend_impl_generic.carbon @@ -434,8 +434,8 @@ class X(U:! type) { // CHECK:STDOUT: %I.generic: %I.type.609 = struct_value () [concrete] // CHECK:STDOUT: %I.type.1ab3e4.1: type = facet_type <@I, @I(%T)> [symbolic] // CHECK:STDOUT: %Self.fdb544.1: %I.type.1ab3e4.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.fdb544.1 [symbolic] -// CHECK:STDOUT: %pattern_type.a8a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.fdb544.1 [symbolic] +// CHECK:STDOUT: %pattern_type.f2f: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d1c4.1: type = pattern_type %T [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.1d69d8.1: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.fdb544.1) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.cd4fc9.1: %I.WithSelf.F.type.1d69d8.1 = struct_value () [symbolic] @@ -513,19 +513,19 @@ class X(U:! type) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.1d69d8.1) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.cd4fc9.1)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.a8a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.a8a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.f2f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.f2f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %t.param_patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = value_param_pattern [concrete] // CHECK:STDOUT: %t.patt: @I.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.51d1c4.1) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @I.WithSelf.F.%I.type (%I.type.1ab3e4.1) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self.fdb544.1)] // CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.1ab3e4.1) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.fdb544.1)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %t.param: @I.WithSelf.F.%T (%T) = value_param call_param1 // CHECK:STDOUT: %T.ref: type = name_ref T, @I.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %t: @I.WithSelf.F.%T (%T) = value_binding t, %t.param @@ -612,11 +612,11 @@ class X(U:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab3e4.1)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab3e4.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.fdb544.1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.a8a)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.f2f)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %T [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.51d1c4.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type), %t.param: @I.WithSelf.F.%T (%T)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type), %t.param: @I.WithSelf.F.%T (%T)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @X.as.I.impl.F(@X.%U.loc8_10.2: type) { @@ -647,8 +647,8 @@ class X(U:! type) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab3e4.1 // CHECK:STDOUT: %Self => constants.%Self.fdb544.1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.a8a +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.f2f // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -715,7 +715,7 @@ class X(U:! type) { // CHECK:STDOUT: %T => constants.%U // CHECK:STDOUT: %I.type => constants.%I.type.1ab3e4.2 // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%X +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%X // CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.e07 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.51d1c4.2 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/fail_call_invalid.carbon b/toolchain/check/testdata/impl/fail_call_invalid.carbon index a8bc6d3d112c..792cb99d6659 100644 --- a/toolchain/check/testdata/impl/fail_call_invalid.carbon +++ b/toolchain/check/testdata/impl/fail_call_invalid.carbon @@ -33,8 +33,8 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Simple.type: type = facet_type <@Simple> [concrete] // CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5e9: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.d21: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Simple.WithSelf.G.type.d78: type = fn_type @Simple.WithSelf.G, @Simple.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Simple.WithSelf.G.41d: %Simple.WithSelf.G.type.d78 = struct_value () [symbolic] @@ -96,16 +96,16 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Simple.WithSelf.G.decl: @Simple.WithSelf.%Simple.WithSelf.G.type (%Simple.WithSelf.G.type.d78) = fn_decl @Simple.WithSelf.G [symbolic = @Simple.WithSelf.%Simple.WithSelf.G (constants.%Simple.WithSelf.G.41d)] { -// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.5e9) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.d21) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Simple.WithSelf.G.%pattern_type (%pattern_type.d21) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Simple.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Simple.WithSelf.G.%Self.as_type.loc16_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Simple.type = name_ref Self, @Simple.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Simple.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Simple.WithSelf.G.%Self.as_type.loc16_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Simple.assoc_type = assoc_entity element0, %Simple.WithSelf.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -144,10 +144,10 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple.WithSelf.G(@Simple.%Self: %Simple.type) { // CHECK:STDOUT: %Self: %Simple.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.5e9)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.d21)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Simple.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Simple.WithSelf.G.%Self.as_type.loc16_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @i32.as.Simple.impl.G.loc24_27.1(%self.param: ); @@ -182,8 +182,8 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5e9 +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d21 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf(constants.%Simple.facet) { @@ -195,7 +195,7 @@ fn InstanceCall(n: i32) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple.WithSelf.G(constants.%Simple.facet) { // CHECK:STDOUT: %Self => constants.%Simple.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%i32 +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%i32 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7ce // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon index 73f69db64b89..39a4a8b58e65 100644 --- a/toolchain/check/testdata/impl/fail_impl_as_scope.carbon +++ b/toolchain/check/testdata/impl/fail_impl_as_scope.carbon @@ -239,8 +239,8 @@ class X { // CHECK:STDOUT: %Z.WithSelf.Zero.3f4: %Z.WithSelf.Zero.type.e4a = struct_value () [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] // CHECK:STDOUT: %assoc0.cc0: %Z.assoc_type = assoc_entity element0, @Z.WithSelf.%Z.WithSelf.Zero.decl [concrete] -// CHECK:STDOUT: %Self.binding.as_type.62d: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] -// CHECK:STDOUT: %pattern_type.84b: type = pattern_type %Self.binding.as_type.62d [symbolic] +// CHECK:STDOUT: %Self.as_type.27e: type = facet_access_type %Self.c59 [symbolic] +// CHECK:STDOUT: %pattern_type.b27: type = pattern_type %Self.as_type.27e [symbolic] // CHECK:STDOUT: %Z.WithSelf.Method.type.dfd: type = fn_type @Z.WithSelf.Method, @Z.WithSelf(%Self.c59) [symbolic] // CHECK:STDOUT: %Z.WithSelf.Method.324: %Z.WithSelf.Method.type.dfd = struct_value () [symbolic] // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, @Z.WithSelf.%Z.WithSelf.Method.decl [concrete] @@ -248,7 +248,7 @@ class X { // CHECK:STDOUT: %.as.Z.impl.Zero: %.as.Z.impl.Zero.type = struct_value () [symbolic] // CHECK:STDOUT: %.as.Z.impl.Method.type: type = fn_type @.as.Z.impl.Method, @.as.Z.impl(%Self.c59) [symbolic] // CHECK:STDOUT: %.as.Z.impl.Method: %.as.Z.impl.Method.type = struct_value () [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.62d [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.27e [symbolic] // CHECK:STDOUT: %Point: type = class_type @Point [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness @Point.as.Z.impl.%Z.impl_witness_table [concrete] // CHECK:STDOUT: %Point.as.Z.impl.Zero.type: type = fn_type @Point.as.Z.impl.Zero [concrete] @@ -307,16 +307,16 @@ class X { // CHECK:STDOUT: %Z.WithSelf.Zero.decl: @Z.WithSelf.%Z.WithSelf.Zero.type (%Z.WithSelf.Zero.type.e4a) = fn_decl @Z.WithSelf.Zero [symbolic = @Z.WithSelf.%Z.WithSelf.Zero (constants.%Z.WithSelf.Zero.3f4)] {} {} // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.Zero.decl [concrete = constants.%assoc0.cc0] // CHECK:STDOUT: %Z.WithSelf.Method.decl: @Z.WithSelf.%Z.WithSelf.Method.type (%Z.WithSelf.Method.type.dfd) = fn_decl @Z.WithSelf.Method [symbolic = @Z.WithSelf.%Z.WithSelf.Method (constants.%Z.WithSelf.Method.324)] { -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.84b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.b27) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.Method.%pattern_type (%pattern_type.b27) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_param call_param0 -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] { +// CHECK:STDOUT: %self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.27e) = value_param call_param0 +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.27e)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] -// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] +// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.27e)] +// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.27e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Z.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.27e) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %Z.assoc_type = assoc_entity element1, %Z.WithSelf.Method.decl [concrete = constants.%assoc1] // CHECK:STDOUT: impl_decl @.as.Z.impl [concrete] {} { @@ -345,16 +345,16 @@ class X { // CHECK:STDOUT: impl: as %Z.ref { // CHECK:STDOUT: %.as.Z.impl.Zero.decl: @.as.Z.impl.%.as.Z.impl.Zero.type (%.as.Z.impl.Zero.type) = fn_decl @.as.Z.impl.Zero [symbolic = @.as.Z.impl.%.as.Z.impl.Zero (constants.%.as.Z.impl.Zero)] {} {} // CHECK:STDOUT: %.as.Z.impl.Method.decl: @.as.Z.impl.%.as.Z.impl.Method.type (%.as.Z.impl.Method.type) = fn_decl @.as.Z.impl.Method [symbolic = @.as.Z.impl.%.as.Z.impl.Method (constants.%.as.Z.impl.Method)] { -// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.84b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.b27) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @.as.Z.impl.Method.%pattern_type (%pattern_type.b27) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_param call_param0 -// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] { +// CHECK:STDOUT: %self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.27e) = value_param call_param0 +// CHECK:STDOUT: %.loc13_28.1: type = splice_block %.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.27e)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] -// CHECK:STDOUT: %.loc13_28.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] +// CHECK:STDOUT: %Self.as_type.loc13_28.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.27e)] +// CHECK:STDOUT: %.loc13_28.2: type = converted %Self.ref, %Self.as_type.loc13_28.2 [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.27e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.62d) = value_binding self, %self.param +// CHECK:STDOUT: %self: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.27e) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -402,10 +402,10 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.WithSelf.Method(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.84b)] +// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type.27e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.b27)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type.62d)); +// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.Method.%Self.as_type.loc5_19.1 (%Self.as_type.27e)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Zero(@Z.%Self: %Z.type) { @@ -419,13 +419,13 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @.as.Z.impl.Method(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.62d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.84b)] +// CHECK:STDOUT: %Self.as_type.loc13_28.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc13_28.1 (constants.%Self.as_type.27e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc13_28.1 [symbolic = %pattern_type (constants.%pattern_type.b27)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc13_28.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.binding.as_type (%Self.binding.as_type.62d)) { +// CHECK:STDOUT: fn(%self.param: @.as.Z.impl.Method.%Self.as_type.loc13_28.1 (%Self.as_type.27e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -486,8 +486,8 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.Method(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.62d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.84b +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type.27e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @.as.Z.impl(constants.%Self.c59) { @@ -503,8 +503,8 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @.as.Z.impl.Method(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.62d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.84b +// CHECK:STDOUT: %Self.as_type.loc13_28.1 => constants.%Self.as_type.27e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { @@ -520,7 +520,7 @@ class X { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.Method(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%Point +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Point // CHECK:STDOUT: %pattern_type => constants.%pattern_type.c86 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon index fec34a0b1c84..46175ee08358 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon @@ -368,21 +368,21 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: %FDifferentReturnType.as.J.impl.F.a709b1.2: %FDifferentReturnType.as.J.impl.F.type.7bcb67.2 = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.aed: %SelfNested.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.07b: type = symbolic_binding_type Self, 0, %Self.aed [symbolic] -// CHECK:STDOUT: %ptr.d99: type = ptr_type %Self.binding.as_type.07b [symbolic] +// CHECK:STDOUT: %Self.as_type.b90: type = facet_access_type %Self.aed [symbolic] +// CHECK:STDOUT: %ptr.ad7: type = ptr_type %Self.as_type.b90 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %struct_type.x.y.e05: type = struct_type {.x: %Self.binding.as_type.07b, .y: %i32} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.8bf: type = struct_type {.x: %Self.as_type.b90, .y: %i32} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.179: %tuple.type.24b = tuple_value (%ptr.d99, %struct_type.x.y.e05) [symbolic] -// CHECK:STDOUT: %tuple.type.9cf: type = tuple_type (%ptr.d99, %struct_type.x.y.e05) [symbolic] -// CHECK:STDOUT: %pattern_type.37a: type = pattern_type %tuple.type.9cf [symbolic] +// CHECK:STDOUT: %tuple.f6b: %tuple.type.24b = tuple_value (%ptr.ad7, %struct_type.x.y.8bf) [symbolic] +// CHECK:STDOUT: %tuple.type.873: type = tuple_type (%ptr.ad7, %struct_type.x.y.8bf) [symbolic] +// CHECK:STDOUT: %pattern_type.5a6: type = pattern_type %tuple.type.873 [symbolic] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete] -// CHECK:STDOUT: %array_type.eba: type = array_type %int_4, %Self.binding.as_type.07b [symbolic] -// CHECK:STDOUT: %.efe: Core.Form = init_form %array_type.eba [symbolic] -// CHECK:STDOUT: %pattern_type.dfe: type = pattern_type %array_type.eba [symbolic] +// CHECK:STDOUT: %array_type.a6c: type = array_type %int_4, %Self.as_type.b90 [symbolic] +// CHECK:STDOUT: %.725: Core.Form = init_form %array_type.a6c [symbolic] +// CHECK:STDOUT: %pattern_type.28e: type = pattern_type %array_type.a6c [symbolic] // CHECK:STDOUT: %SelfNested.WithSelf.F.type.430: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.aed) [symbolic] // CHECK:STDOUT: %SelfNested.WithSelf.F.257: %SelfNested.WithSelf.F.type.430 = struct_value () [symbolic] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] @@ -539,34 +539,34 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.430) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.257)] { -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.37a) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.37a) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.dfe) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.dfe) = return_slot_pattern %return.param_patt, %array_type.loc211_57.2 [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.5a6) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_9 (%pattern_type.5a6) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.28e) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @SelfNested.WithSelf.F.%pattern_type.loc211_57 (%pattern_type.28e) = return_slot_pattern %return.param_patt, %array_type.loc211_57.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc211_50: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] // CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [concrete = constants.%int_4] -// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.eba)] -// CHECK:STDOUT: %.loc211_57.2: Core.Form = init_form %array_type.loc211_57.2 [symbolic = %.loc211_57.1 (constants.%.efe)] -// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.9cf) = value_param call_param0 -// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.9cf)] { +// CHECK:STDOUT: %Self.as_type.loc211_50: type = facet_access_type %Self.ref.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %.loc211_50: type = converted %Self.ref.loc211_50, %Self.as_type.loc211_50 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %array_type.loc211_57.2: type = array_type %int_4, %.loc211_50 [symbolic = %array_type.loc211_57.1 (constants.%array_type.a6c)] +// CHECK:STDOUT: %.loc211_57.2: Core.Form = init_form %array_type.loc211_57.2 [symbolic = %.loc211_57.1 (constants.%.725)] +// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.873) = value_param call_param0 +// CHECK:STDOUT: %.loc211_38.1: type = splice_block %.loc211_38.3 [symbolic = %tuple.type (constants.%tuple.type.873)] { // CHECK:STDOUT: %Self.ref.loc211_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.as_type.loc211_16: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.d99)] +// CHECK:STDOUT: %Self.as_type.loc211_16.2: type = facet_access_type %Self.ref.loc211_12 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %.loc211_16: type = converted %Self.ref.loc211_12, %Self.as_type.loc211_16.2 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %ptr.loc211_16.2: type = ptr_type %.loc211_16 [symbolic = %ptr.loc211_16.1 (constants.%ptr.ad7)] // CHECK:STDOUT: %Self.ref.loc211_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] +// CHECK:STDOUT: %Self.as_type.loc211_24: type = facet_access_type %Self.ref.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %.loc211_24: type = converted %Self.ref.loc211_24, %Self.as_type.loc211_24 [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.07b), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.e05)] -// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) [symbolic = %tuple (constants.%tuple.179)] -// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.9cf [symbolic = %tuple.type (constants.%tuple.type.9cf)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.b90), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.8bf)] +// CHECK:STDOUT: %.loc211_38.2: %tuple.type.24b = tuple_literal (%ptr.loc211_16.2, %struct_type.x.y.loc211_37.2) [symbolic = %tuple (constants.%tuple.f6b)] +// CHECK:STDOUT: %.loc211_38.3: type = converted %.loc211_38.2, constants.%tuple.type.873 [symbolic = %tuple.type (constants.%tuple.type.873)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.9cf) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.eba) = out_param call_param1 -// CHECK:STDOUT: %return: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.eba) = return_slot %return.param +// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.873) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6c) = out_param call_param1 +// CHECK:STDOUT: %return: ref @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6c) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.da4] // CHECK:STDOUT: @@ -1294,17 +1294,17 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.WithSelf.F(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc211_16.1 (constants.%ptr.d99)] -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.07b), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.e05)] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple (constants.%tuple.179)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.9cf)] -// CHECK:STDOUT: %pattern_type.loc211_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_9 (constants.%pattern_type.37a)] -// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.binding.as_type [symbolic = %array_type.loc211_57.1 (constants.%array_type.eba)] -// CHECK:STDOUT: %.loc211_57.1: Core.Form = init_form %array_type.loc211_57.1 [symbolic = %.loc211_57.1 (constants.%.efe)] -// CHECK:STDOUT: %pattern_type.loc211_57: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_57 (constants.%pattern_type.dfe)] +// CHECK:STDOUT: %Self.as_type.loc211_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc211_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %ptr.loc211_16.1: type = ptr_type %Self.as_type.loc211_16.1 [symbolic = %ptr.loc211_16.1 (constants.%ptr.ad7)] +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc211_16.1 (%Self.as_type.b90), .y: %i32} [symbolic = %struct_type.x.y.loc211_37.1 (constants.%struct_type.x.y.8bf)] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple (constants.%tuple.f6b)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc211_16.1, %struct_type.x.y.loc211_37.1) [symbolic = %tuple.type (constants.%tuple.type.873)] +// CHECK:STDOUT: %pattern_type.loc211_9: type = pattern_type %tuple.type [symbolic = %pattern_type.loc211_9 (constants.%pattern_type.5a6)] +// CHECK:STDOUT: %array_type.loc211_57.1: type = array_type constants.%int_4, %Self.as_type.loc211_16.1 [symbolic = %array_type.loc211_57.1 (constants.%array_type.a6c)] +// CHECK:STDOUT: %.loc211_57.1: Core.Form = init_form %array_type.loc211_57.1 [symbolic = %.loc211_57.1 (constants.%.725)] +// CHECK:STDOUT: %pattern_type.loc211_57: type = pattern_type %array_type.loc211_57.1 [symbolic = %pattern_type.loc211_57 (constants.%pattern_type.28e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.9cf)) -> out %return.param: @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.eba); +// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.873)) -> out %return.param: @SelfNested.WithSelf.F.%array_type.loc211_57.1 (%array_type.a6c); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @SelfNestedBadParam.as.SelfNested.impl.F.loc223_87.1(%x.param: %tuple.type.70f) -> out %return.param: %array_type.388; @@ -1461,15 +1461,15 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.aed) { // CHECK:STDOUT: %Self => constants.%Self.aed -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.07b -// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.d99 -// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.e05 -// CHECK:STDOUT: %tuple => constants.%tuple.179 -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.9cf -// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.37a -// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.eba -// CHECK:STDOUT: %.loc211_57.1 => constants.%.efe -// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.dfe +// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%Self.as_type.b90 +// CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.ad7 +// CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.8bf +// CHECK:STDOUT: %tuple => constants.%tuple.f6b +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.873 +// CHECK:STDOUT: %pattern_type.loc211_9 => constants.%pattern_type.5a6 +// CHECK:STDOUT: %array_type.loc211_57.1 => constants.%array_type.a6c +// CHECK:STDOUT: %.loc211_57.1 => constants.%.725 +// CHECK:STDOUT: %pattern_type.loc211_57 => constants.%pattern_type.28e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.b9f) { @@ -1481,7 +1481,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.b9f) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.b9f -// CHECK:STDOUT: %Self.binding.as_type => constants.%SelfNestedBadParam +// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadParam // CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.cf2 // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.62a // CHECK:STDOUT: %tuple => constants.%tuple.73b @@ -1501,7 +1501,7 @@ class SelfNestedBadReturnType { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.23f) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.23f -// CHECK:STDOUT: %Self.binding.as_type => constants.%SelfNestedBadReturnType +// CHECK:STDOUT: %Self.as_type.loc211_16.1 => constants.%SelfNestedBadReturnType // CHECK:STDOUT: %ptr.loc211_16.1 => constants.%ptr.cbe // CHECK:STDOUT: %struct_type.x.y.loc211_37.1 => constants.%struct_type.x.y.cfa // CHECK:STDOUT: %tuple => constants.%tuple.c42 diff --git a/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon b/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon index 31bec456e082..501222a4ef1a 100644 --- a/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon +++ b/toolchain/check/testdata/impl/fail_impl_bad_interface.carbon @@ -138,7 +138,7 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -161,8 +161,8 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_36: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_24: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_24: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_18: type = where_expr %.Self [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc8_24, %.loc8_36 @@ -185,7 +185,7 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: bool} [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %type_where: type = facet_type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -212,8 +212,8 @@ impl {.a: bool} as type where .Self impls I {} // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_31: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_31: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc10_25: type = where_expr %.Self [concrete = constants.%type_where] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc10_31, %I.ref diff --git a/toolchain/check/testdata/impl/forward_decls.carbon b/toolchain/check/testdata/impl/forward_decls.carbon index 98283611ff81..8c38ba446fff 100644 --- a/toolchain/check/testdata/impl/forward_decls.carbon +++ b/toolchain/check/testdata/impl/forward_decls.carbon @@ -545,7 +545,7 @@ interface I { // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -574,8 +574,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc6: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc6: type = facet_access_type %.Self.ref.loc6 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6: type = facet_access_type %.Self.ref.loc6 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -591,8 +591,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc8: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc8: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc8: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -654,7 +654,7 @@ interface I { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -686,8 +686,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc7: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc7: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc7: type = facet_access_type %.Self.ref.loc7 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_19: type = converted %.Self.ref.loc7, %.Self.as_type.loc7 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc7: type = facet_access_type %.Self.ref.loc7 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_19: type = converted %.Self.ref.loc7, %.Self.as_type.loc7 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc7: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc7: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc7_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -716,8 +716,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc11: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc11: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_19: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_19: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -793,7 +793,7 @@ interface I { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -825,8 +825,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc7: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc7: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc7: type = facet_access_type %.Self.ref.loc7 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_19: type = converted %.Self.ref.loc7, %.Self.as_type.loc7 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc7: type = facet_access_type %.Self.ref.loc7 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_19: type = converted %.Self.ref.loc7, %.Self.as_type.loc7 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc7: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc7: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc7_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -857,8 +857,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc11: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc11: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_19: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_19: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1035,7 +1035,7 @@ interface I { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1062,8 +1062,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc13: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc13: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13: type = facet_access_type %.Self.ref.loc13 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_19: type = converted %.Self.ref.loc13, %.Self.as_type.loc13 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13: type = facet_access_type %.Self.ref.loc13 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_19: type = converted %.Self.ref.loc13, %.Self.as_type.loc13 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc13: = name_ref T, [concrete = ] // CHECK:STDOUT: %C.ref.loc13: type = name_ref C, file.%C.decl.loc4 [concrete = constants.%C] // CHECK:STDOUT: %.loc13_13: type = where_expr %.Self.2 [concrete = ] { @@ -1078,8 +1078,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc21: type = name_ref I, file.%I.decl.loc3 [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc21: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc21: type = facet_access_type %.Self.ref.loc21 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc21_19: type = converted %.Self.ref.loc21, %.Self.as_type.loc21 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc21: type = facet_access_type %.Self.ref.loc21 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc21_19: type = converted %.Self.ref.loc21, %.Self.as_type.loc21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc21: = name_ref T, [concrete = ] // CHECK:STDOUT: %C.ref.loc21: type = name_ref C, file.%C.decl.loc4 [concrete = constants.%C] // CHECK:STDOUT: %.loc21_13: type = where_expr %.Self.1 [concrete = ] { @@ -1152,7 +1152,7 @@ interface I { // CHECK:STDOUT: %Self.b60: %I.type.807 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.assoc_type.2e0: type = assoc_entity_type @I, @I(%C) [concrete] // CHECK:STDOUT: %assoc0.501: %I.assoc_type.2e0 = assoc_entity element0, @I.WithSelf.%T [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.9dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.9dc [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.9dc, @I, @I(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I, @I(%C) where %impl.elem0 = %C> [concrete] @@ -1193,8 +1193,8 @@ interface I { // CHECK:STDOUT: %I.type.loc8: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.807] // CHECK:STDOUT: %.Self.2: %I.type.807 = symbolic_binding .Self [symbolic_self = constants.%.Self.9dc] // CHECK:STDOUT: %.Self.ref.loc8: %I.type.807 = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.9dc] -// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_22.1: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc8: type = facet_access_type %.Self.ref.loc8 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_22.1: type = converted %.Self.ref.loc8, %.Self.as_type.loc8 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_22.2: %I.assoc_type.2e0 = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.9dc) [concrete = constants.%assoc0.501] // CHECK:STDOUT: %T.ref.loc8: %I.assoc_type.2e0 = name_ref T, %.loc8_22.2 [concrete = constants.%assoc0.501] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] @@ -1212,8 +1212,8 @@ interface I { // CHECK:STDOUT: %I.type.loc11: type = facet_type <@I, @I(constants.%C)> [concrete = constants.%I.type.807] // CHECK:STDOUT: %.Self.1: %I.type.807 = symbolic_binding .Self [symbolic_self = constants.%.Self.9dc] // CHECK:STDOUT: %.Self.ref.loc11: %I.type.807 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.9dc] -// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_22.1: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11: type = facet_access_type %.Self.ref.loc11 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_22.1: type = converted %.Self.ref.loc11, %.Self.as_type.loc11 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc11_22.2: %I.assoc_type.2e0 = specific_constant @T.%assoc0, @I.WithSelf(constants.%C, constants.%.Self.9dc) [concrete = constants.%assoc0.501] // CHECK:STDOUT: %T.ref.loc11: %I.assoc_type.2e0 = name_ref T, %.loc11_22.2 [concrete = constants.%assoc0.501] // CHECK:STDOUT: %impl.elem0.loc11: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] @@ -1570,7 +1570,7 @@ interface I { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -1600,8 +1600,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc9: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc9: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc9: type = facet_access_type %.Self.ref.loc9 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_19: type = converted %.Self.ref.loc9, %.Self.as_type.loc9 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc9: type = facet_access_type %.Self.ref.loc9 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_19: type = converted %.Self.ref.loc9, %.Self.as_type.loc9 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc9: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1616,8 +1616,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc18: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc18: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc18: type = facet_access_type %.Self.ref.loc18 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref.loc18, %.Self.as_type.loc18 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc18: type = facet_access_type %.Self.ref.loc18 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc18_19: type = converted %.Self.ref.loc18, %.Self.as_type.loc18 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc18: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc18: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc18_25.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1691,8 +1691,8 @@ interface I { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %U: %X.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] -// CHECK:STDOUT: %pattern_type.b36: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.78b: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -1708,7 +1708,7 @@ interface I { // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%X.facet) [concrete] // CHECK:STDOUT: %G.specific_fn: = specific_function %G, @G(%X.facet) [concrete] // CHECK:STDOUT: %Self.162: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @C.as.Y.impl.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %Y.facet: %Y.type = facet_value %C, (%Y.impl_witness) [concrete] // CHECK:STDOUT: } @@ -1743,21 +1743,21 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc7: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.b4b = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.78b) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.78b) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc7_10: type = splice_block %X.ref.loc7 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %X.ref.loc7: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc7_7.2: %X.type = symbolic_binding U, 0 [symbolic = %U.loc7_7.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc7: @G.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_16.1: type = splice_block %.loc7_16.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %u.param.loc7: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_16.1: type = splice_block %.loc7_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref.loc7: %X.type = name_ref U, %U.loc7_7.2 [symbolic = %U.loc7_7.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc7: type = facet_access_type %U.ref.loc7 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc7_16.2: type = converted %U.ref.loc7, %U.as_type.loc7 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc7_16.2: type = facet_access_type %U.ref.loc7 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc7_16.2: type = converted %U.ref.loc7, %U.as_type.loc7_16.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.loc7: @G.%U.binding.as_type (%U.binding.as_type) = value_binding u, %u.param.loc7 +// CHECK:STDOUT: %u.loc7: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_binding u, %u.param.loc7 // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl.loc9: type = class_decl @C [concrete = constants.%C] {} {} // CHECK:STDOUT: impl_decl @C.as.X.impl [concrete] {} { @@ -1787,21 +1787,21 @@ interface I { // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl.loc35: %G.type = fn_decl @G [concrete = constants.%G] { // CHECK:STDOUT: %U.patt: %pattern_type.b4b = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.b36) = value_param_pattern [concrete] -// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.b36) = at_binding_pattern u, %u.param_patt [concrete] +// CHECK:STDOUT: %u.param_patt: @G.%pattern_type (%pattern_type.78b) = value_param_pattern [concrete] +// CHECK:STDOUT: %u.patt: @G.%pattern_type (%pattern_type.78b) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc35_10: type = splice_block %X.ref.loc35 [concrete = constants.%X.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %X.ref.loc35: type = name_ref X, file.%X.decl.loc3 [concrete = constants.%X.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc35: %X.type = symbolic_binding U, 0 [symbolic = %U.loc7_7.1 (constants.%U)] -// CHECK:STDOUT: %u.param.loc35: @G.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc35_23.1: type = splice_block %.loc35_23.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc35_23.1: type = splice_block %.loc35_23.2 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref.loc35: %X.type = name_ref U, %U.loc35 [symbolic = %U.loc7_7.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type.loc35: type = facet_access_type %U.ref.loc35 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc35_23.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc35: type = facet_access_type %U.ref.loc35 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc35_23.2: type = converted %U.ref.loc35, %U.as_type.loc35 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %u.loc35: @G.%U.binding.as_type (%U.binding.as_type) = value_binding u, %u.param.loc35 +// CHECK:STDOUT: %u.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type) = value_binding u, %u.param.loc35 // CHECK:STDOUT: } // CHECK:STDOUT: impl_decl @C.as.Y.impl [concrete] {} { // CHECK:STDOUT: %C.ref.loc36: type = name_ref C, file.%C.decl.loc9 [concrete = constants.%C] @@ -1876,13 +1876,13 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%U.loc7_7.2: %X.type) { // CHECK:STDOUT: %U.loc7_7.1: %X.type = symbolic_binding U, 0 [symbolic = %U.loc7_7.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc7_7.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.b36)] +// CHECK:STDOUT: %U.as_type.loc7_16.1: type = facet_access_type %U.loc7_7.1 [symbolic = %U.as_type.loc7_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc7_16.1 [symbolic = %pattern_type (constants.%pattern_type.78b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc7_16.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.binding.as_type (%U.binding.as_type)) { +// CHECK:STDOUT: fn(%u.param.loc35: @G.%U.as_type.loc7_16.1 (%U.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1911,8 +1911,8 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc7_7.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b36 +// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.78b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf(constants.%Self.e52) { @@ -1927,7 +1927,7 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%X.facet) { // CHECK:STDOUT: %U.loc7_7.1 => constants.%X.facet -// CHECK:STDOUT: %U.binding.as_type => constants.%C +// CHECK:STDOUT: %U.as_type.loc7_16.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -2087,7 +2087,7 @@ interface I { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.type.29d: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.8ec: %I.WithSelf.F.type.29d = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where %impl.elem0 = %C> [symbolic] @@ -2181,8 +2181,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc12: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc12: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc12: type = facet_access_type %.Self.ref.loc12 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc12_23: type = converted %.Self.ref.loc12, %.Self.as_type.loc12 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc12: type = facet_access_type %.Self.ref.loc12 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc12_23: type = converted %.Self.ref.loc12, %.Self.as_type.loc12 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref.loc12: %I.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc12: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc12_28: type = name_ref C, @I.WithSelf.F.%C.decl [symbolic = %C (constants.%C)] @@ -2196,8 +2196,8 @@ interface I { // CHECK:STDOUT: %I.ref.loc21: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc21: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc21: type = facet_access_type %.Self.ref.loc21 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc21_23: type = converted %.Self.ref.loc21, %.Self.as_type.loc21 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc21: type = facet_access_type %.Self.ref.loc21 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc21_23: type = converted %.Self.ref.loc21, %.Self.as_type.loc21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref.loc21: %I.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc21: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref.loc21_28: type = name_ref C, @I.WithSelf.F.%C.decl [symbolic = %C (constants.%C)] diff --git a/toolchain/check/testdata/impl/generic_redeclaration.carbon b/toolchain/check/testdata/impl/generic_redeclaration.carbon index cc64222402f5..ec083e69a7dd 100644 --- a/toolchain/check/testdata/impl/generic_redeclaration.carbon +++ b/toolchain/check/testdata/impl/generic_redeclaration.carbon @@ -135,24 +135,24 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T.651: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.3af: type = symbolic_binding_type T, 0, %T.651 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.779: = impl_witness @T.binding.as_type.as.Interface.impl.973.%Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.973(%T.651) [symbolic] +// CHECK:STDOUT: %T.as_type.066: type = facet_access_type %T.651 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.cca: = impl_witness @T.as_type.as.Interface.impl.ff3.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.ff3(%T.651) [symbolic] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T.612: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.50b: type = symbolic_binding_type T, 0, %T.612 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.8e2: = impl_witness @T.binding.as_type.as.Interface.impl.5eb.%Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.5eb(%T.612) [symbolic] +// CHECK:STDOUT: %T.as_type.6e5: type = facet_access_type %T.612 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.885: = impl_witness @T.as_type.as.Interface.impl.755.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.755(%T.612) [symbolic] // CHECK:STDOUT: %pattern_type.250: type = pattern_type %K.type [concrete] // CHECK:STDOUT: %T.9b2: %K.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.bec: type = symbolic_binding_type T, 0, %T.9b2 [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.84e: = impl_witness @T.binding.as_type.as.Interface.impl.edf.%Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.edf(%T.9b2) [symbolic] +// CHECK:STDOUT: %T.as_type.47d: type = facet_access_type %T.9b2 [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.0f2: = impl_witness @T.as_type.as.Interface.impl.cd3.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.cd3(%T.9b2) [symbolic] // CHECK:STDOUT: %pattern_type.88f: type = pattern_type %L.type [concrete] // CHECK:STDOUT: %T.0fc: %L.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.29d: type = symbolic_binding_type T, 0, %T.0fc [symbolic] -// CHECK:STDOUT: %Interface.impl_witness.8e9: = impl_witness @T.binding.as_type.as.Interface.impl.410.%Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.410(%T.0fc) [symbolic] -// CHECK:STDOUT: %Interface.facet.9bb: %Interface.type = facet_value %T.binding.as_type.3af, (%Interface.impl_witness.779) [symbolic] -// CHECK:STDOUT: %Interface.facet.08d: %Interface.type = facet_value %T.binding.as_type.50b, (%Interface.impl_witness.8e2) [symbolic] -// CHECK:STDOUT: %Interface.facet.842: %Interface.type = facet_value %T.binding.as_type.bec, (%Interface.impl_witness.84e) [symbolic] -// CHECK:STDOUT: %Interface.facet.f9d: %Interface.type = facet_value %T.binding.as_type.29d, (%Interface.impl_witness.8e9) [symbolic] +// CHECK:STDOUT: %T.as_type.123: type = facet_access_type %T.0fc [symbolic] +// CHECK:STDOUT: %Interface.impl_witness.18f: = impl_witness @T.as_type.as.Interface.impl.ba3.%Interface.impl_witness_table, @T.as_type.as.Interface.impl.ba3(%T.0fc) [symbolic] +// CHECK:STDOUT: %Interface.facet.dee: %Interface.type = facet_value %T.as_type.066, (%Interface.impl_witness.cca) [symbolic] +// CHECK:STDOUT: %Interface.facet.fe2: %Interface.type = facet_value %T.as_type.6e5, (%Interface.impl_witness.885) [symbolic] +// CHECK:STDOUT: %Interface.facet.3a6: %Interface.type = facet_value %T.as_type.47d, (%Interface.impl_witness.0f2) [symbolic] +// CHECK:STDOUT: %Interface.facet.a4b: %Interface.type = facet_value %T.as_type.123, (%Interface.impl_witness.18f) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -177,12 +177,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %K.decl: type = interface_decl @K [concrete = constants.%K.type] {} {} // CHECK:STDOUT: %L.decl: type = interface_decl @L [concrete = constants.%L.type] {} {} -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.973 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.ff3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12: %I.type = name_ref T, %T.loc12_15.1 [symbolic = %T.loc12_15.2 (constants.%T.651)] -// CHECK:STDOUT: %T.as_type.loc12: type = facet_access_type %T.ref.loc12 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %.loc12_21: type = converted %T.ref.loc12, %T.as_type.loc12 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] +// CHECK:STDOUT: %T.as_type.loc12_21.1: type = facet_access_type %T.ref.loc12 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.066)] +// CHECK:STDOUT: %.loc12_21: type = converted %T.ref.loc12, %T.as_type.loc12_21.1 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.066)] // CHECK:STDOUT: %Interface.ref.loc12: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc12_18: type = splice_block %I.ref.loc12 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -190,12 +190,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_15.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.651)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.5eb [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.755 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc13_15.1 [symbolic = %T.loc13_15.2 (constants.%T.612)] -// CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type %T.ref.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %.loc13_21: type = converted %T.ref.loc13, %T.as_type.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] +// CHECK:STDOUT: %T.as_type.loc13_21.1: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %.loc13_21: type = converted %T.ref.loc13, %T.as_type.loc13_21.1 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.6e5)] // CHECK:STDOUT: %Interface.ref.loc13: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc13_18: type = splice_block %J.ref.loc13 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -203,12 +203,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc13_15.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.612)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.edf [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.cd3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.250 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc14: %K.type = name_ref T, %T.loc14_15.1 [symbolic = %T.loc14_15.2 (constants.%T.9b2)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.bec)] -// CHECK:STDOUT: %.loc14_21: type = converted %T.ref.loc14, %T.as_type.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.bec)] +// CHECK:STDOUT: %T.as_type.loc14_21.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.47d)] +// CHECK:STDOUT: %.loc14_21: type = converted %T.ref.loc14, %T.as_type.loc14_21.1 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.47d)] // CHECK:STDOUT: %Interface.ref.loc14: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc14_18: type = splice_block %K.ref.loc14 [concrete = constants.%K.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -216,12 +216,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_15.1: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.9b2)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.410 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.ba3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.88f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc15: %L.type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T.0fc)] -// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.29d)] -// CHECK:STDOUT: %.loc15_21: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.29d)] +// CHECK:STDOUT: %T.as_type.loc15_21.1: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.123)] +// CHECK:STDOUT: %.loc15_21: type = converted %T.ref.loc15, %T.as_type.loc15_21.1 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.123)] // CHECK:STDOUT: %Interface.ref.loc15: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc15_18: type = splice_block %L.ref.loc15 [concrete = constants.%L.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -229,12 +229,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc15_15.1: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.0fc)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.973 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.ff3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.9d9 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc19: %I.type = name_ref T, %T.loc19 [symbolic = %T.loc12_15.2 (constants.%T.651)] -// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] +// CHECK:STDOUT: %T.as_type.loc19: type = facet_access_type %T.ref.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.066)] +// CHECK:STDOUT: %.loc19_21: type = converted %T.ref.loc19, %T.as_type.loc19 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.066)] // CHECK:STDOUT: %Interface.ref.loc19: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc19_18: type = splice_block %I.ref.loc19 [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -242,12 +242,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc19: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.651)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.5eb [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.755 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc27: %J.type = name_ref T, %T.loc27 [symbolic = %T.loc13_15.2 (constants.%T.612)] -// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] +// CHECK:STDOUT: %T.as_type.loc27: type = facet_access_type %T.ref.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %.loc27_21: type = converted %T.ref.loc27, %T.as_type.loc27 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.6e5)] // CHECK:STDOUT: %Interface.ref.loc27: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc27_18: type = splice_block %J.ref.loc27 [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -255,12 +255,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc27: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.612)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.edf [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.cd3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.250 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc35: %K.type = name_ref T, %T.loc35 [symbolic = %T.loc14_15.2 (constants.%T.9b2)] -// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.bec)] -// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.bec)] +// CHECK:STDOUT: %T.as_type.loc35: type = facet_access_type %T.ref.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.47d)] +// CHECK:STDOUT: %.loc35_21: type = converted %T.ref.loc35, %T.as_type.loc35 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.47d)] // CHECK:STDOUT: %Interface.ref.loc35: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc35_18: type = splice_block %K.ref.loc35 [concrete = constants.%K.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -268,12 +268,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc35: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.9b2)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.Interface.impl.410 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.Interface.impl.ba3 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.88f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc43: %L.type = name_ref T, %T.loc43 [symbolic = %T.loc15_15.2 (constants.%T.0fc)] -// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.29d)] -// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.29d)] +// CHECK:STDOUT: %T.as_type.loc43: type = facet_access_type %T.ref.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.123)] +// CHECK:STDOUT: %.loc43_21: type = converted %T.ref.loc43, %T.as_type.loc43 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.123)] // CHECK:STDOUT: %Interface.ref.loc43: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %.loc43_18: type = splice_block %L.ref.loc43 [concrete = constants.%L.type] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -338,64 +338,64 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.973(%T.loc12_15.1: %I.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.ff3(%T.loc12_15.1: %I.type) { // CHECK:STDOUT: %T.loc12_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc12_15.2 (constants.%T.651)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.973(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.779)] +// CHECK:STDOUT: %T.as_type.loc12_21.2: type = facet_access_type %T.loc12_15.2 [symbolic = %T.as_type.loc12_21.2 (constants.%T.as_type.066)] +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.ff3(%T.loc12_15.2) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.cca)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc12_21 as %Interface.ref.loc12 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Interface.impl.973 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.1: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.973(constants.%T.651) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.779)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.ff3 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.ff3(constants.%T.651) [symbolic = %Interface.impl_witness.loc12_35.2 (constants.%Interface.impl_witness.cca)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Interface.impl_witness.loc12_35.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.5eb(%T.loc13_15.1: %J.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.755(%T.loc13_15.1: %J.type) { // CHECK:STDOUT: %T.loc13_15.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc13_15.2 (constants.%T.612)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.5eb(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.8e2)] +// CHECK:STDOUT: %T.as_type.loc13_21.2: type = facet_access_type %T.loc13_15.2 [symbolic = %T.as_type.loc13_21.2 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.755(%T.loc13_15.2) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.885)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc13_21 as %Interface.ref.loc13 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Interface.impl.5eb [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.1: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.5eb(constants.%T.612) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.8e2)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.755 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.755(constants.%T.612) [symbolic = %Interface.impl_witness.loc13_35.2 (constants.%Interface.impl_witness.885)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Interface.impl_witness.loc13_35.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.edf(%T.loc14_15.1: %K.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.cd3(%T.loc14_15.1: %K.type) { // CHECK:STDOUT: %T.loc14_15.2: %K.type = symbolic_binding T, 0 [symbolic = %T.loc14_15.2 (constants.%T.9b2)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc14_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.bec)] -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.edf(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.84e)] +// CHECK:STDOUT: %T.as_type.loc14_21.2: type = facet_access_type %T.loc14_15.2 [symbolic = %T.as_type.loc14_21.2 (constants.%T.as_type.47d)] +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.cd3(%T.loc14_15.2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.0f2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc14_21 as %Interface.ref.loc14 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Interface.impl.edf [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.1: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.edf(constants.%T.9b2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.84e)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.cd3 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.cd3(constants.%T.9b2) [symbolic = %Interface.impl_witness.loc14_35.2 (constants.%Interface.impl_witness.0f2)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Interface.impl_witness.loc14_35.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.Interface.impl.410(%T.loc15_15.1: %L.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.Interface.impl.ba3(%T.loc15_15.1: %L.type) { // CHECK:STDOUT: %T.loc15_15.2: %L.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T.0fc)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc15_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.29d)] -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.410(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.8e9)] +// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type.123)] +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.ba3(%T.loc15_15.2) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.18f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc15_21 as %Interface.ref.loc15 { -// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.Interface.impl.410 [concrete] -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.1: = impl_witness %Interface.impl_witness_table, @T.binding.as_type.as.Interface.impl.410(constants.%T.0fc) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.8e9)] +// CHECK:STDOUT: %Interface.impl_witness_table = impl_witness_table (), @T.as_type.as.Interface.impl.ba3 [concrete] +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.1: = impl_witness %Interface.impl_witness_table, @T.as_type.as.Interface.impl.ba3(constants.%T.0fc) [symbolic = %Interface.impl_witness.loc15_35.2 (constants.%Interface.impl_witness.18f)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %Interface.impl_witness.loc15_35.1 @@ -422,43 +422,43 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.973(constants.%T.651) { +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.ff3(constants.%T.651) { // CHECK:STDOUT: %T.loc12_15.2 => constants.%T.651 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3af -// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2 => constants.%Interface.impl_witness.779 +// CHECK:STDOUT: %T.as_type.loc12_21.2 => constants.%T.as_type.066 +// CHECK:STDOUT: %Interface.impl_witness.loc12_35.2 => constants.%Interface.impl_witness.cca // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.5eb(constants.%T.612) { +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.755(constants.%T.612) { // CHECK:STDOUT: %T.loc13_15.2 => constants.%T.612 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.50b -// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2 => constants.%Interface.impl_witness.8e2 +// CHECK:STDOUT: %T.as_type.loc13_21.2 => constants.%T.as_type.6e5 +// CHECK:STDOUT: %Interface.impl_witness.loc13_35.2 => constants.%Interface.impl_witness.885 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.edf(constants.%T.9b2) { +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.cd3(constants.%T.9b2) { // CHECK:STDOUT: %T.loc14_15.2 => constants.%T.9b2 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.bec -// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2 => constants.%Interface.impl_witness.84e +// CHECK:STDOUT: %T.as_type.loc14_21.2 => constants.%T.as_type.47d +// CHECK:STDOUT: %Interface.impl_witness.loc14_35.2 => constants.%Interface.impl_witness.0f2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.Interface.impl.410(constants.%T.0fc) { +// CHECK:STDOUT: specific @T.as_type.as.Interface.impl.ba3(constants.%T.0fc) { // CHECK:STDOUT: %T.loc15_15.2 => constants.%T.0fc -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.29d -// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2 => constants.%Interface.impl_witness.8e9 +// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type.123 +// CHECK:STDOUT: %Interface.impl_witness.loc15_35.2 => constants.%Interface.impl_witness.18f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.9bb) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.dee) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.08d) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.fe2) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.842) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.3a6) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.f9d) { +// CHECK:STDOUT: specific @Interface.WithSelf(constants.%Interface.facet.a4b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -473,9 +473,9 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %J.impl_witness: = impl_witness @T.binding.as_type.as.J.impl.c4ee06.1.%J.impl_witness_table, @T.binding.as_type.as.J.impl.c4ee06.1(%T) [symbolic] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.binding.as_type, (%J.impl_witness) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %J.impl_witness: = impl_witness @T.as_type.as.J.impl.048579.1.%J.impl_witness_table, @T.as_type.as.J.impl.048579.1(%T) [symbolic] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type, (%J.impl_witness) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -494,12 +494,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.J.impl.c4ee06.1 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.048579.1 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc7_15.1 [symbolic = %T.loc7_15.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc7_21: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc7_21.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc7_21: type = converted %T.ref, %T.as_type.loc7_21.1 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.loc7_18: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -507,12 +507,12 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc7_15.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] // CHECK:STDOUT: } -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.J.impl.c4ee06.2 [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.J.impl.048579.2 [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc15_15.1 [symbolic = %T.loc15_15.2 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_21: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc15_21.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_21: type = converted %T.ref, %T.as_type.loc15_21.1 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.loc15_18: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -544,25 +544,25 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.J.impl.c4ee06.1(%T.loc7_15.1: %I.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.048579.1(%T.loc7_15.1: %I.type) { // CHECK:STDOUT: %T.loc7_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc7_15.2 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %J.impl_witness.loc7_28.2: = impl_witness %J.impl_witness_table, @T.binding.as_type.as.J.impl.c4ee06.1(%T.loc7_15.2) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] +// CHECK:STDOUT: %T.as_type.loc7_21.2: type = facet_access_type %T.loc7_15.2 [symbolic = %T.as_type.loc7_21.2 (constants.%T.as_type)] +// CHECK:STDOUT: %J.impl_witness.loc7_28.2: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.048579.1(%T.loc7_15.2) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_21 as %J.ref { -// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.binding.as_type.as.J.impl.c4ee06.1 [concrete] -// CHECK:STDOUT: %J.impl_witness.loc7_28.1: = impl_witness %J.impl_witness_table, @T.binding.as_type.as.J.impl.c4ee06.1(constants.%T) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] +// CHECK:STDOUT: %J.impl_witness_table = impl_witness_table (), @T.as_type.as.J.impl.048579.1 [concrete] +// CHECK:STDOUT: %J.impl_witness.loc7_28.1: = impl_witness %J.impl_witness_table, @T.as_type.as.J.impl.048579.1(constants.%T) [symbolic = %J.impl_witness.loc7_28.2 (constants.%J.impl_witness)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: witness = %J.impl_witness.loc7_28.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.J.impl.c4ee06.2(%T.loc15_15.1: %I.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.J.impl.048579.2(%T.loc15_15.1: %I.type) { // CHECK:STDOUT: %T.loc15_15.2: %I.type = symbolic_binding T, 0 [symbolic = %T.loc15_15.2 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc15_15.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc15_21.2: type = facet_access_type %T.loc15_15.2 [symbolic = %T.as_type.loc15_21.2 (constants.%T.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -580,9 +580,9 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.J.impl.c4ee06.1(constants.%T) { +// CHECK:STDOUT: specific @T.as_type.as.J.impl.048579.1(constants.%T) { // CHECK:STDOUT: %T.loc7_15.2 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc7_21.2 => constants.%T.as_type // CHECK:STDOUT: %J.impl_witness.loc7_28.2 => constants.%J.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: @@ -590,9 +590,9 @@ impl forall [T:! type] T as I { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.J.impl.c4ee06.2(constants.%T) { +// CHECK:STDOUT: specific @T.as_type.as.J.impl.048579.2(constants.%T) { // CHECK:STDOUT: %T.loc15_15.2 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc15_21.2 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_same_type_different_spelling.carbon diff --git a/toolchain/check/testdata/impl/impl_assoc_const.carbon b/toolchain/check/testdata/impl/impl_assoc_const.carbon index f5eca1d61662..7834fc84d1f3 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const.carbon @@ -406,7 +406,7 @@ fn G() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.Self: %L.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %L.lookup_impl_witness: = lookup_impl_witness %.Self, @L [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %L.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %tuple.type.2d5: type = tuple_type (%empty_tuple.type, %empty_tuple.type, %empty_tuple.type) [concrete] @@ -428,8 +428,8 @@ fn G() { // CHECK:STDOUT: %L.ref: type = name_ref L, file.%L.decl [concrete = constants.%L.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_20: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_20: type = facet_access_type %.Self.ref.loc13_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_20: type = converted %.Self.ref.loc13_20, %.Self.as_type.loc13_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_20: type = facet_access_type %.Self.ref.loc13_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_20: type = converted %.Self.ref.loc13_20, %.Self.as_type.loc13_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %W.ref.loc13_20: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_20: type = impl_witness_access constants.%L.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc13_27: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -441,8 +441,8 @@ fn G() { // CHECK:STDOUT: %.loc13_36.4: type = converted constants.%empty_tuple, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc13_36.5: type = converted %.loc13_36.1, constants.%tuple.type.2d5 [concrete = constants.%tuple.type.2d5] // CHECK:STDOUT: %.Self.ref.loc13_42: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_42: type = facet_access_type %.Self.ref.loc13_42 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_42: type = converted %.Self.ref.loc13_42, %.Self.as_type.loc13_42 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_42: type = facet_access_type %.Self.ref.loc13_42 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_42: type = converted %.Self.ref.loc13_42, %.Self.as_type.loc13_42 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %W.ref.loc13_42: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_42: type = impl_witness_access constants.%L.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst.loc13_42: type = impl_witness_access_substituted %impl.elem0.loc13_42, %.loc13_36.5 [concrete = constants.%tuple.type.2d5] @@ -455,8 +455,8 @@ fn G() { // CHECK:STDOUT: %.loc13_58.4: type = converted constants.%empty_tuple, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc13_58.5: type = converted %.loc13_58.1, constants.%tuple.type.e5a [concrete = constants.%tuple.type.e5a] // CHECK:STDOUT: %.Self.ref.loc13_64: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_64: type = facet_access_type %.Self.ref.loc13_64 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_64: type = converted %.Self.ref.loc13_64, %.Self.as_type.loc13_64 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_64: type = facet_access_type %.Self.ref.loc13_64 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_64: type = converted %.Self.ref.loc13_64, %.Self.as_type.loc13_64 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %W.ref.loc13_64: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_64: type = impl_witness_access constants.%L.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst.loc13_64: type = impl_witness_access_substituted %impl.elem0.loc13_64, %.loc13_36.5 [concrete = constants.%tuple.type.2d5] @@ -469,8 +469,8 @@ fn G() { // CHECK:STDOUT: %.loc13_80.4: type = converted constants.%empty_tuple, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.loc13_80.5: type = converted %.loc13_80.1, constants.%tuple.type.d7e [concrete = constants.%tuple.type.d7e] // CHECK:STDOUT: %.Self.ref.loc13_86: %L.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_86: type = facet_access_type %.Self.ref.loc13_86 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_86: type = converted %.Self.ref.loc13_86, %.Self.as_type.loc13_86 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_86: type = facet_access_type %.Self.ref.loc13_86 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_86: type = converted %.Self.ref.loc13_86, %.Self.as_type.loc13_86 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %W.ref.loc13_86: %L.assoc_type = name_ref W, @W.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_86: type = impl_witness_access constants.%L.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst.loc13_86: type = impl_witness_access_substituted %impl.elem0.loc13_86, %.loc13_36.5 [concrete = constants.%tuple.type.2d5] @@ -508,7 +508,7 @@ fn G() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.Self: %M.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access %M.lookup_impl_witness, element1 [symbolic_self] @@ -522,29 +522,29 @@ fn G() { // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc13_20: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_20: type = facet_access_type %.Self.ref.loc13_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_20: type = converted %.Self.ref.loc13_20, %.Self.as_type.loc13_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_20: type = facet_access_type %.Self.ref.loc13_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_20: type = converted %.Self.ref.loc13_20, %.Self.as_type.loc13_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_20: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_20: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.Self.ref.loc13_25: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_25: type = facet_access_type %.Self.ref.loc13_25 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_25: type = converted %.Self.ref.loc13_25, %.Self.as_type.loc13_25 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_25: type = facet_access_type %.Self.ref.loc13_25 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_25: type = converted %.Self.ref.loc13_25, %.Self.as_type.loc13_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_25: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_25: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_32: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_32: type = facet_access_type %.Self.ref.loc13_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_32: type = converted %.Self.ref.loc13_32, %.Self.as_type.loc13_32 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_32: type = facet_access_type %.Self.ref.loc13_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_32: type = converted %.Self.ref.loc13_32, %.Self.as_type.loc13_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref.loc13_32: %M.assoc_type = name_ref Y, @Y.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_32: type = impl_witness_access constants.%M.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_37: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_37: type = facet_access_type %.Self.ref.loc13_37 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_37: type = converted %.Self.ref.loc13_37, %.Self.as_type.loc13_37 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_37: type = facet_access_type %.Self.ref.loc13_37 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_37: type = converted %.Self.ref.loc13_37, %.Self.as_type.loc13_37 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13_37: %M.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_37: type = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc13_37, %impl.elem1.loc13_25 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.Self.ref.loc13_44: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13_44: type = facet_access_type %.Self.ref.loc13_44 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_44: type = converted %.Self.ref.loc13_44, %.Self.as_type.loc13_44 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13_44: type = facet_access_type %.Self.ref.loc13_44 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_44: type = converted %.Self.ref.loc13_44, %.Self.as_type.loc13_44 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc2 [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%M.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %.loc13_50.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon index 93d47b560edd..57fd6ac2e232 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon @@ -50,7 +50,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %assoc0.be0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.Self.1dc: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.1dc, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.358da: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -130,8 +130,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %SubWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.1, %Core.import_ref.d95), @Core.IntLiteral.as.SubWith.impl [concrete] // CHECK:STDOUT: %Core.DivWith: %DivWith.type.fc9 = import_ref Core//prelude/operators/arithmetic, DivWith, loaded [concrete = constants.%DivWith.generic] // CHECK:STDOUT: %Core.import_ref.abd97d.2 = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.93eb: %Core.IntLiteral.as.DivWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] -// CHECK:STDOUT: %DivWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.2, %Core.import_ref.93eb), @Core.IntLiteral.as.DivWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.93e: %Core.IntLiteral.as.DivWith.impl.Op.type = import_ref Core//prelude/operators/arithmetic, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.DivWith.impl.Op] +// CHECK:STDOUT: %DivWith.impl_witness_table = impl_witness_table (%Core.import_ref.abd97d.2, %Core.import_ref.93e), @Core.IntLiteral.as.DivWith.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -147,8 +147,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc6_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.be0] // CHECK:STDOUT: %impl.elem0.loc6_20: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.358da] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] @@ -175,8 +175,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %struct.loc6_48: %struct_type.a.b.fe2 = struct_value (%true, %.loc6_48.2) [concrete = constants.%struct.682] // CHECK:STDOUT: %.loc6_48.3: %struct_type.a.b.fe2 = converted %.loc6_48.1, %struct.loc6_48 [concrete = constants.%struct.682] // CHECK:STDOUT: %.Self.ref.loc6_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type.loc6_54: type = facet_access_type %.Self.ref.loc6_54 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_54: type = converted %.Self.ref.loc6_54, %.Self.as_type.loc6_54 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6_54: type = facet_access_type %.Self.ref.loc6_54 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_54: type = converted %.Self.ref.loc6_54, %.Self.as_type.loc6_54 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc6_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.be0] // CHECK:STDOUT: %impl.elem0.loc6_54: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.358da] // CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.fe2 = impl_witness_access_substituted %impl.elem0.loc6_54, %.loc6_48.3 [concrete = constants.%struct.682] @@ -280,7 +280,7 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %assoc0.be0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%X [concrete] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.358: %struct_type.a.b.fe2 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %true: bool = bool_literal true [concrete] @@ -354,8 +354,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc10_20: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.be0] // CHECK:STDOUT: %impl.elem0.loc10_20: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.358] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] @@ -382,8 +382,8 @@ impl () as I where .X = {.a = true, .b = (1, 2)} and .X = {.a = false, .b = (3, // CHECK:STDOUT: %struct.loc10_48: %struct_type.a.b.fe2 = struct_value (%true, %.loc10_48.2) [concrete = constants.%struct.682] // CHECK:STDOUT: %.loc10_48.3: %struct_type.a.b.fe2 = converted %.loc10_48.1, %struct.loc10_48 [concrete = constants.%struct.682] // CHECK:STDOUT: %.Self.ref.loc10_54: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_54: type = facet_access_type %.Self.ref.loc10_54 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_54: type = converted %.Self.ref.loc10_54, %.Self.as_type.loc10_54 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_54: type = facet_access_type %.Self.ref.loc10_54 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_54: type = converted %.Self.ref.loc10_54, %.Self.as_type.loc10_54 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc10_54: %I.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.be0] // CHECK:STDOUT: %impl.elem0.loc10_54: %struct_type.a.b.fe2 = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.358] // CHECK:STDOUT: %impl.elem0.subst: %struct_type.a.b.fe2 = impl_witness_access_substituted %impl.elem0.loc10_54, %.loc10_48.3 [concrete = constants.%struct.682] diff --git a/toolchain/check/testdata/impl/impl_thunk.carbon b/toolchain/check/testdata/impl/impl_thunk.carbon index 57e2464d70b8..e39b314bd051 100644 --- a/toolchain/check/testdata/impl/impl_thunk.carbon +++ b/toolchain/check/testdata/impl/impl_thunk.carbon @@ -839,9 +839,9 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %U.035: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.14b: type = symbolic_binding_type U, 0, %U.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %U.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %U.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %U.as_type.255: type = facet_access_type %U.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %U.as_type.255 [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %U.as_type.255 [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.19e4b8.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.8be29b.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = struct_value () [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] @@ -850,7 +850,7 @@ impl () as I({}) { // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.19e4b8.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.8be29b.2: %empty_tuple.type.as.I.impl.F.type.19e4b8.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67ca8d.1: = require_complete_type %U.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %require_complete.89e464.1: = require_complete_type %U.as_type.255 [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58dce0.2: = lookup_impl_witness %U.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.035) [symbolic] @@ -879,30 +879,30 @@ impl () as I({}) { // CHECK:STDOUT: impl @empty_tuple.type.as.I.impl: %.loc8_7.2 as %I.ref { // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_34.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.1 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.1] { // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_34.1.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc10_32.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc10_32: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc10_32: type = facet_access_type %U.ref.loc10_32 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_32.3: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %U.as_type.loc10_32: type = facet_access_type %U.ref.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_32.3: type = converted %U.ref.loc10_32, %U.as_type.loc10_32 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_32.4: Core.Form = init_form %.loc10_32.3 [symbolic = %.loc10_32.2 (constants.%.435d17.2)] // CHECK:STDOUT: %.loc10_16: type = splice_block %Copy.ref [concrete = constants.%Copy.type] { // CHECK:STDOUT: // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc10_9.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.035)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) = value_param call_param0 -// CHECK:STDOUT: %.loc10_26.1: type = splice_block %.loc10_26.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] { +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = value_param call_param0 +// CHECK:STDOUT: %.loc10_26.1: type = splice_block %.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] { // CHECK:STDOUT: %U.ref.loc10_26: %Copy.type = name_ref U, %U.loc10_9.2 [symbolic = %U.loc10_9.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc10_26: type = facet_access_type %U.ref.loc10_26 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_26.2: type = converted %U.ref.loc10_26, %U.as_type.loc10_26 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] +// CHECK:STDOUT: %U.as_type.loc10_26.2: type = facet_access_type %U.ref.loc10_26 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_26.2: type = converted %U.ref.loc10_26, %U.as_type.loc10_26.2 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) = 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.14b) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = out_param call_param1 +// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = 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.19e4b8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_34.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.2] { @@ -919,27 +919,27 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc10_34.1(%U.loc10_9.2: %Copy.type) { // CHECK:STDOUT: %U.loc10_9.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_9.1 (constants.%U.035)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc10_9.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %U.binding.as_type [symbolic = %.loc10_32.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %U.as_type.loc10_26.1: type = facet_access_type %U.loc10_9.1 [symbolic = %U.as_type.loc10_26.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_26.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc10_32.2: Core.Form = init_form %U.as_type.loc10_26.1 [symbolic = %.loc10_32.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.67ca8d.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_26.1 [symbolic = %require_complete (constants.%require_complete.89e464.1)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_9.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.3)] // CHECK:STDOUT: %.loc10_43: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_9.1 [symbolic = %.loc10_43 (constants.%.023143.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_9.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58dce0.2)] // CHECK:STDOUT: %impl.elem0.loc10_43.2: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.023143.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %specific_impl_fn.loc10_43.2: = specific_impl_function %impl.elem0.loc10_43.2, @Copy.WithSelf.Op(%U.loc10_9.1) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) { +// CHECK:STDOUT: fn(%x.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc10_43.1: @empty_tuple.type.as.I.impl.F.loc10_34.1.%.loc10_43 (%.023143.2) = impl_witness_access constants.%Copy.lookup_impl_witness.58dce0.2, element0 [symbolic = %impl.elem0.loc10_43.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %bound_method.loc10_43.1: = bound_method %x.ref, %impl.elem0.loc10_43.1 // CHECK:STDOUT: %specific_impl_fn.loc10_43.1: = specific_impl_function %impl.elem0.loc10_43.1, @Copy.WithSelf.Op(constants.%U.035) [symbolic = %specific_impl_fn.loc10_43.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: %bound_method.loc10_43.2: = bound_method %x.ref, %specific_impl_fn.loc10_43.1 -// CHECK:STDOUT: %.loc10_32.1: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.binding.as_type (%U.binding.as_type.14b) to %.loc10_32.1 = call %bound_method.loc10_43.2(%x.ref) +// CHECK:STDOUT: %.loc10_32.1: ref @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_34.1.%U.as_type.loc10_26.1 (%U.as_type.255) to %.loc10_32.1 = call %bound_method.loc10_43.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -967,9 +967,9 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%U.035) { // CHECK:STDOUT: %U.loc10_9.1 => constants.%U.035 -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.14b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc10_32.2 => constants.%.076a48.2 +// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%U.as_type.255 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc10_32.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.2(constants.%T.67d) { @@ -981,7 +981,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_34.1(constants.%Copy.facet) { // CHECK:STDOUT: %U.loc10_9.1 => constants.%Copy.facet -// CHECK:STDOUT: %U.binding.as_type => constants.%ptr.e8f +// CHECK:STDOUT: %U.as_type.loc10_26.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc10_32.2 => constants.%.cb6 // CHECK:STDOUT: @@ -1003,9 +1003,9 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %pattern_type.ce2: type = pattern_type %Copy.type [concrete] // CHECK:STDOUT: %U.035: %Copy.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.14b: type = symbolic_binding_type U, 0, %U.035 [symbolic] -// CHECK:STDOUT: %pattern_type.9b9f0c.2: type = pattern_type %U.binding.as_type.14b [symbolic] -// CHECK:STDOUT: %.076a48.2: Core.Form = init_form %U.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %U.as_type.255: type = facet_access_type %U.035 [symbolic] +// CHECK:STDOUT: %pattern_type.3b9bb5.2: type = pattern_type %U.as_type.255 [symbolic] +// CHECK:STDOUT: %.435d17.2: Core.Form = init_form %U.as_type.255 [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.19e4b8.1: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.1 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.8be29b.1: %empty_tuple.type.as.I.impl.F.type.19e4b8.1 = struct_value () [concrete] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] @@ -1014,7 +1014,7 @@ impl () as I({}) { // CHECK:STDOUT: %.cb6: Core.Form = init_form %ptr.e8f [symbolic] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.type.19e4b8.2: type = fn_type @empty_tuple.type.as.I.impl.F.loc10_51.2 [concrete] // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.8be29b.2: %empty_tuple.type.as.I.impl.F.type.19e4b8.2 = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.67ca8d.1: = require_complete_type %U.binding.as_type.14b [symbolic] +// CHECK:STDOUT: %require_complete.89e464.1: = require_complete_type %U.as_type.255 [symbolic] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %Copy.lookup_impl_witness.58dce0.2: = lookup_impl_witness %U.035, @Copy [symbolic] // CHECK:STDOUT: %Copy.WithSelf.Op.type.735e75.3: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.035) [symbolic] @@ -1045,15 +1045,15 @@ impl () as I({}) { // CHECK:STDOUT: %self.param_patt: %pattern_type.cb1 = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: %pattern_type.cb1 = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %U.patt: %pattern_type.ce2 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.9b9f0c.2) = return_slot_pattern %return.param_patt, %.loc10_49.3 [concrete] +// CHECK:STDOUT: %x.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.3b9bb5.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.3b9bb5.2) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.3b9bb5.2) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @empty_tuple.type.as.I.impl.F.loc10_51.1.%pattern_type (%pattern_type.3b9bb5.2) = return_slot_pattern %return.param_patt, %.loc10_49.3 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %U.ref.loc10_49: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc10_49: type = facet_access_type %U.ref.loc10_49 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_49.3: type = converted %U.ref.loc10_49, %U.as_type.loc10_49 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_49.4: Core.Form = init_form %.loc10_49.3 [symbolic = %.loc10_49.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %U.as_type.loc10_49: type = facet_access_type %U.ref.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_49.3: type = converted %U.ref.loc10_49, %U.as_type.loc10_49 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_49.4: Core.Form = init_form %.loc10_49.3 [symbolic = %.loc10_49.2 (constants.%.435d17.2)] // CHECK:STDOUT: %self.param: %empty_tuple.type = value_param call_param0 // CHECK:STDOUT: %.loc10_22.1: type = splice_block %.loc10_22.3 [concrete = constants.%empty_tuple.type] { // CHECK:STDOUT: %.loc10_22.2: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1066,15 +1066,15 @@ impl () as I({}) { // CHECK:STDOUT: %Copy.ref: type = name_ref Copy, imports.%Core.Copy [concrete = constants.%Copy.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc10_26.2: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.035)] -// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = value_param call_param1 -// CHECK:STDOUT: %.loc10_43.1: type = splice_block %.loc10_43.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] { +// CHECK:STDOUT: %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = value_param call_param1 +// CHECK:STDOUT: %.loc10_43.1: type = splice_block %.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] { // CHECK:STDOUT: %U.ref.loc10_43: %Copy.type = name_ref U, %U.loc10_26.2 [symbolic = %U.loc10_26.1 (constants.%U.035)] -// CHECK:STDOUT: %U.as_type.loc10_43: type = facet_access_type %U.ref.loc10_43 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %.loc10_43.2: type = converted %U.ref.loc10_43, %U.as_type.loc10_43 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] +// CHECK:STDOUT: %U.as_type.loc10_43.2: type = facet_access_type %U.ref.loc10_43 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %.loc10_43.2: type = converted %U.ref.loc10_43, %U.as_type.loc10_43.2 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = out_param call_param2 -// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = return_slot %return.param +// CHECK:STDOUT: %x: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = out_param call_param2 +// CHECK:STDOUT: %return: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: %empty_tuple.type.as.I.impl.F.decl.loc10_51.2: %empty_tuple.type.as.I.impl.F.type.19e4b8.2 = fn_decl @empty_tuple.type.as.I.impl.F.loc10_51.2 [concrete = constants.%empty_tuple.type.as.I.impl.F.8be29b.2] { @@ -1091,27 +1091,27 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_tuple.type.as.I.impl.F.loc10_51.1(%U.loc10_26.2: %Copy.type) { // CHECK:STDOUT: %U.loc10_26.1: %Copy.type = symbolic_binding U, 0 [symbolic = %U.loc10_26.1 (constants.%U.035)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc10_26.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type.14b)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9b9f0c.2)] -// CHECK:STDOUT: %.loc10_49.2: Core.Form = init_form %U.binding.as_type [symbolic = %.loc10_49.2 (constants.%.076a48.2)] +// CHECK:STDOUT: %U.as_type.loc10_43.1: type = facet_access_type %U.loc10_26.1 [symbolic = %U.as_type.loc10_43.1 (constants.%U.as_type.255)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc10_43.1 [symbolic = %pattern_type (constants.%pattern_type.3b9bb5.2)] +// CHECK:STDOUT: %.loc10_49.2: Core.Form = init_form %U.as_type.loc10_43.1 [symbolic = %.loc10_49.2 (constants.%.435d17.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete.67ca8d.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc10_43.1 [symbolic = %require_complete (constants.%require_complete.89e464.1)] // CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%U.loc10_26.1) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.735e75.3)] // CHECK:STDOUT: %.loc10_60: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %U.loc10_26.1 [symbolic = %.loc10_60 (constants.%.023143.2)] // CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %U.loc10_26.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.58dce0.2)] // CHECK:STDOUT: %impl.elem0.loc10_60.2: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.023143.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %specific_impl_fn.loc10_60.2: = specific_impl_function %impl.elem0.loc10_60.2, @Copy.WithSelf.Op(%U.loc10_26.1) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) { +// CHECK:STDOUT: fn(%self.param: %empty_tuple.type, %x.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255)) -> out %return.param: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = name_ref x, %x // CHECK:STDOUT: %impl.elem0.loc10_60.1: @empty_tuple.type.as.I.impl.F.loc10_51.1.%.loc10_60 (%.023143.2) = impl_witness_access constants.%Copy.lookup_impl_witness.58dce0.2, element0 [symbolic = %impl.elem0.loc10_60.2 (constants.%impl.elem0.594c59.2)] // CHECK:STDOUT: %bound_method.loc10_60.1: = bound_method %x.ref, %impl.elem0.loc10_60.1 // CHECK:STDOUT: %specific_impl_fn.loc10_60.1: = specific_impl_function %impl.elem0.loc10_60.1, @Copy.WithSelf.Op(constants.%U.035) [symbolic = %specific_impl_fn.loc10_60.2 (constants.%specific_impl_fn.bdce5c.2)] // CHECK:STDOUT: %bound_method.loc10_60.2: = bound_method %x.ref, %specific_impl_fn.loc10_60.1 -// CHECK:STDOUT: %.loc10_49.1: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) = splice_block %return.param {} -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.binding.as_type (%U.binding.as_type.14b) to %.loc10_49.1 = call %bound_method.loc10_60.2(%x.ref) +// CHECK:STDOUT: %.loc10_49.1: ref @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) = splice_block %return.param {} +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @empty_tuple.type.as.I.impl.F.loc10_51.1.%U.as_type.loc10_43.1 (%U.as_type.255) to %.loc10_49.1 = call %bound_method.loc10_60.2(%x.ref) // CHECK:STDOUT: return %Copy.WithSelf.Op.call to %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1141,9 +1141,9 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.1(constants.%U.035) { // CHECK:STDOUT: %U.loc10_26.1 => constants.%U.035 -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type.14b -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b9f0c.2 -// CHECK:STDOUT: %.loc10_49.2 => constants.%.076a48.2 +// CHECK:STDOUT: %U.as_type.loc10_43.1 => constants.%U.as_type.255 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.3b9bb5.2 +// CHECK:STDOUT: %.loc10_49.2 => constants.%.435d17.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.2(constants.%T.67d) { @@ -1155,7 +1155,7 @@ impl () as I({}) { // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_tuple.type.as.I.impl.F.loc10_51.1(constants.%Copy.facet) { // CHECK:STDOUT: %U.loc10_26.1 => constants.%Copy.facet -// CHECK:STDOUT: %U.binding.as_type => constants.%ptr.e8f +// CHECK:STDOUT: %U.as_type.loc10_43.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc10_49.2 => constants.%.cb6 // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon index 6a6be398627d..e0908a0ed428 100644 --- a/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_thunk_min_prelude.carbon @@ -118,13 +118,13 @@ fn Call() -> i32 { // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b37: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%i32, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %.545: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.b37, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5, @Core.IntLiteral.as.ImplicitAs.impl.Convert(%int_32) [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.type.73828b.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.0aa775.1: %i32.as.Add.impl.Op.type.73828b.1 = struct_value () [concrete] +// CHECK:STDOUT: %i32.as.Add.impl.Op.type.edbd61.1: type = fn_type @i32.as.Add.impl.Op.loc8_35.1, @i32.as.Add.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %i32.as.Add.impl.Op.5cfa41.1: %i32.as.Add.impl.Op.type.edbd61.1 = struct_value () [concrete] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.4e5: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5 [concrete] // CHECK:STDOUT: %bound_method.646: = bound_method %int_2.ecc, %Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn [concrete] // CHECK:STDOUT: %int_2.ef8: %i32 = int_value 2 [concrete] -// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.0f6a75.2: = specific_function %i32.as.Add.impl.Op.0aa775.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn.c0c7bd.2: = specific_function %i32.as.Add.impl.Op.5cfa41.1, @i32.as.Add.impl.Op.loc8_35.1(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -140,8 +140,8 @@ fn Call() -> i32 { // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.e8c = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.6bc) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc18_14.1: %ImplicitAs.type.e8c = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: -// CHECK:STDOUT: %.loc18_14.2: %i32.as.Add.impl.Op.type.73828b.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.0aa775.1] -// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.73828b.1 = name_ref Op, %.loc18_14.2 [concrete = constants.%i32.as.Add.impl.Op.0aa775.1] +// CHECK:STDOUT: %.loc18_14.2: %i32.as.Add.impl.Op.type.edbd61.1 = specific_constant @i32.as.Add.impl.%i32.as.Add.impl.Op.decl.loc8_35.1, @i32.as.Add.impl(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.5cfa41.1] +// CHECK:STDOUT: %Op.ref.loc18: %i32.as.Add.impl.Op.type.edbd61.1 = name_ref Op, %.loc18_14.2 [concrete = constants.%i32.as.Add.impl.Op.5cfa41.1] // CHECK:STDOUT: %impl.elem0.loc18_14: %.545 = impl_witness_access constants.%ImplicitAs.impl_witness.6bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5] // CHECK:STDOUT: %bound_method.loc18_14.1: = bound_method %int_2, %impl.elem0.loc18_14 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.4e5] // CHECK:STDOUT: %specific_fn.loc18_14: = specific_function %impl.elem0.loc18_14, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] @@ -149,7 +149,7 @@ fn Call() -> i32 { // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_14: init %i32 = call %bound_method.loc18_14.2(%int_2) [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_14.3: %i32 = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_14 [concrete = constants.%int_2.ef8] // CHECK:STDOUT: %.loc18_14.4: %i32 = converted %int_2, %.loc18_14.3 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.0f6a75.2] +// CHECK:STDOUT: %i32.as.Add.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @i32.as.Add.impl.Op.loc8_35.1(constants.%ImplicitAs.facet) [concrete = constants.%i32.as.Add.impl.Op.specific_fn.c0c7bd.2] // CHECK:STDOUT: %impl.elem0.loc18_13: %.545 = impl_witness_access constants.%ImplicitAs.impl_witness.6bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5] // CHECK:STDOUT: %bound_method.loc18_13.1: = bound_method %int_2, %impl.elem0.loc18_13 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.4e5] // CHECK:STDOUT: %specific_fn.loc18_13: = specific_function %impl.elem0.loc18_13, @Core.IntLiteral.as.ImplicitAs.impl.Convert(constants.%int_32) [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.specific_fn] diff --git a/toolchain/check/testdata/impl/import_builtin_call.carbon b/toolchain/check/testdata/impl/import_builtin_call.carbon index 165822b9a482..3551694196fb 100644 --- a/toolchain/check/testdata/impl/import_builtin_call.carbon +++ b/toolchain/check/testdata/impl/import_builtin_call.carbon @@ -79,9 +79,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: constants { // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.f75: type = pattern_type %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %.e62: Core.Form = init_form %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.284: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.108: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type.f48: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.060: %Add.WithSelf.Op.type.f48 = struct_value () [symbolic] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] @@ -225,33 +225,33 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Add.WithSelf.Op.decl: @Add.WithSelf.%Add.WithSelf.Op.type (%Add.WithSelf.Op.type.f48) = fn_decl @Add.WithSelf.Op [symbolic = @Add.WithSelf.%Add.WithSelf.Op (constants.%Add.WithSelf.Op.060)] { -// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = value_param_pattern [concrete] -// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = at_binding_pattern other, %other.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.f75) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %other.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = value_param_pattern [concrete] +// CHECK:STDOUT: %other.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = at_binding_pattern other, %other.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type.284) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.e62)] -// CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.108)] +// CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param1 -// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param1 +// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Add.WithSelf.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -329,11 +329,11 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.WithSelf.Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.f75)] -// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc5_37.1 (constants.%.e62)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.284)] +// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.108)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type), %other.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type); +// CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @IntLiteral() -> out %return.param: type = "int_literal.make_type"; @@ -393,9 +393,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f75 -// CHECK:STDOUT: %.loc5_37.1 => constants.%.e62 +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.284 +// CHECK:STDOUT: %.loc5_37.1 => constants.%.108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @MyInt(constants.%N) { @@ -434,7 +434,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.fbb) { // CHECK:STDOUT: %Self => constants.%Add.facet.fbb -// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.1a3 // CHECK:STDOUT: %.loc5_37.1 => constants.%.6e6 // CHECK:STDOUT: } @@ -455,7 +455,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.9ab) { // CHECK:STDOUT: %Self => constants.%Add.facet.9ab -// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%MyInt // CHECK:STDOUT: %pattern_type => constants.%pattern_type.1a3 // CHECK:STDOUT: %.loc5_37.1 => constants.%.6e6 // CHECK:STDOUT: } @@ -486,9 +486,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type.099: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.99a: %Add.WithSelf.Op.type.099 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5af: type = pattern_type %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %.32a: Core.Form = init_form %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.0d9: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.1c4: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.lookup_impl_witness: = lookup_impl_witness %MyInt.396, @Add [symbolic] // CHECK:STDOUT: %Add.facet.9ab: %Add.type = facet_value %MyInt.396, (%Add.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type.3e8: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Add.facet.9ab) [symbolic] @@ -638,9 +638,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.bb084d.2: %Add.type) [from "generic_impl.carbon"] { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.5af)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.1 (constants.%.32a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.0d9)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.1c4)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -683,9 +683,9 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5af -// CHECK:STDOUT: %.1 => constants.%.32a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d9 +// CHECK:STDOUT: %.1 => constants.%.1c4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet.9ab) { @@ -697,7 +697,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.9ab) { // CHECK:STDOUT: %Self => constants.%Add.facet.9ab -// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt.396 +// CHECK:STDOUT: %Self.as_type => constants.%MyInt.396 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.1a3 // CHECK:STDOUT: %.1 => constants.%.6e6 // CHECK:STDOUT: } @@ -759,7 +759,7 @@ var n: Int(64) = MakeFromClass(FromLiteral(64) as OtherInt); // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet.1f9) { // CHECK:STDOUT: %Self => constants.%Add.facet.1f9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%MyInt.f9e +// CHECK:STDOUT: %Self.as_type => constants.%MyInt.f9e // CHECK:STDOUT: %pattern_type => constants.%pattern_type.48d // CHECK:STDOUT: %.1 => constants.%.5d4 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/import_compound.carbon b/toolchain/check/testdata/impl/import_compound.carbon index 97c4a3904ebd..2be2a948b6b6 100644 --- a/toolchain/check/testdata/impl/import_compound.carbon +++ b/toolchain/check/testdata/impl/import_compound.carbon @@ -118,8 +118,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %NonInstance.WithSelf.F.899: %NonInstance.WithSelf.F.type.d4e = struct_value () [concrete] // CHECK:STDOUT: %Instance.type: type = facet_type <@Instance> [concrete] // CHECK:STDOUT: %Self.8af: %Instance.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.8af [symbolic] -// CHECK:STDOUT: %pattern_type.7f8: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.8af [symbolic] +// CHECK:STDOUT: %pattern_type.d91: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G.type.332: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self.8af) [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G.cc9: %Instance.WithSelf.G.type.332 = struct_value () [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] @@ -185,16 +185,16 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Instance.WithSelf.G.decl: @Instance.WithSelf.%Instance.WithSelf.G.type (%Instance.WithSelf.G.type.332) = fn_decl @Instance.WithSelf.G [symbolic = @Instance.WithSelf.%Instance.WithSelf.G (constants.%Instance.WithSelf.G.cc9)] { -// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.7f8) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.d91) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Instance.WithSelf.G.%pattern_type (%pattern_type.d91) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Instance.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc12_14.1: type = splice_block %.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Instance.type = name_ref Self, @Instance.%Self [symbolic = %Self (constants.%Self.8af)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc12_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc12_14.2: type = converted %Self.ref, %Self.as_type.loc12_14.2 [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Instance.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, %Instance.WithSelf.G.decl [concrete = constants.%assoc0.048] // CHECK:STDOUT: @@ -244,10 +244,10 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.WithSelf.G(@Instance.%Self: %Instance.type) { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8af)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.7f8)] +// CHECK:STDOUT: %Self.as_type.loc12_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc12_14.1 [symbolic = %pattern_type (constants.%pattern_type.d91)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Instance.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Instance.WithSelf.G.%Self.as_type.loc12_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @struct_type.i.as.Instance.impl.G(%self.param: %struct_type.i) { @@ -282,8 +282,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self.8af) { // CHECK:STDOUT: %Self => constants.%Self.8af -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7f8 +// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) { @@ -295,7 +295,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Instance.facet) { // CHECK:STDOUT: %Self => constants.%Instance.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%struct_type.i +// CHECK:STDOUT: %Self.as_type.loc12_14.1 => constants.%struct_type.i // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9b2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -597,8 +597,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G.type.ce7: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G.f53: %Instance.WithSelf.G.type.ce7 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.4db: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.1cd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.8c1 [concrete] // CHECK:STDOUT: %Instance.impl_witness: = impl_witness imports.%Instance.impl_witness_table [concrete] @@ -698,8 +698,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.7a53e1.2: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.4db)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1cd)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -732,8 +732,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4db +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1cd // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf(constants.%Instance.facet) { @@ -755,8 +755,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G.type: type = fn_type @Instance.WithSelf.G, @Instance.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Instance.WithSelf.G: %Instance.WithSelf.G.type = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Instance.assoc_type: type = assoc_entity_type @Instance [concrete] // CHECK:STDOUT: %assoc0: %Instance.assoc_type = assoc_entity element0, imports.%Main.import_ref.8c1 [concrete] // CHECK:STDOUT: } @@ -816,8 +816,8 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Instance.WithSelf.G(imports.%Main.import_ref.7a53e1.2: %Instance.type) [from "lib.carbon"] { // CHECK:STDOUT: %Self: %Instance.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -831,7 +831,7 @@ fn InstanceCallImportFail() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Instance.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_generic.carbon b/toolchain/check/testdata/impl/import_generic.carbon index 1ce02b8ffaf9..a1133e5c679e 100644 --- a/toolchain/check/testdata/impl/import_generic.carbon +++ b/toolchain/check/testdata/impl/import_generic.carbon @@ -200,7 +200,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.generic: %J.type.885 = struct_value () [concrete] // CHECK:STDOUT: %J.type.04e: type = facet_type <@J, @J(%T)> [symbolic] // CHECK:STDOUT: %Self.a60: %J.type.04e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.a60 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.a60 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -259,15 +259,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.WithSelf.decl = interface_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %J.WithSelf.Self.binding.as_type.impls.I.type.require.decl = require_decl @J.WithSelf.Self.binding.as_type.impls.I.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %I.type.loc5_27.1 +// CHECK:STDOUT: %J.WithSelf.Self.as_type.impls.I.type.require.decl = require_decl @J.WithSelf.Self.as_type.impls.I.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc5_18.1 impls %I.type.loc5_27.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @J.%Self.loc4_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_18.1: type = facet_access_type @J.%Self.loc4_23.1 [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @J.%T.loc4_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.a60) [symbolic = %I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.a60) [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_23.1 @@ -279,17 +279,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @J.WithSelf.Self.binding.as_type.impls.I.type.require { -// CHECK:STDOUT: require @J.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1 +// CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { +// CHECK:STDOUT: require @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type.loc5_18.1 impls @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.binding.as_type.impls.I.type.require(@J.%T.loc4_14.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.04e)) { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(@J.%T.loc4_14.2: type, @J.%Self.loc4_23.1: @J.%J.type (%J.type.04e)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a60)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.a60)] +// CHECK:STDOUT: %Self.as_type.loc5_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -311,11 +311,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.a60) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.a60) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.a60) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %J.type => constants.%J.type.04e // CHECK:STDOUT: %Self => constants.%Self.a60 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc5_18.2 => constants.%Self.as_type // CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -339,7 +339,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.generic: %J.type.885 = struct_value () [concrete] // CHECK:STDOUT: %J.type.04e: type = facet_type <@J, @J(%T)> [symbolic] // CHECK:STDOUT: %Self.c25: %J.type.04e = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c25 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c25 [symbolic] // CHECK:STDOUT: %J.type.d6f: type = facet_type <@J, @J(%empty_struct_type)> [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @C.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -354,9 +354,9 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %Main.J: %J.type.885 = import_ref Main//basic_import_generic_interface, J, loaded [concrete = constants.%J.generic] // CHECK:STDOUT: %Main.import_ref.3fa = import_ref Main//basic_import_generic_interface, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.2: type = import_ref Main//basic_import_generic_interface, loc3_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.7bf = import_ref Main//basic_import_generic_interface, loc5_28, unloaded -// CHECK:STDOUT: %Main.import_ref.2ff: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %Main.import_ref.76d = import_ref Main//basic_import_generic_interface, loc5_28, unloaded +// CHECK:STDOUT: %Main.import_ref.2ff: type = import_ref Main//basic_import_generic_interface, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_interface, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//basic_import_generic_interface, loc4_14, loaded [symbolic = @J.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.99f327.2: @J.%J.type (%J.type.04e) = import_ref Main//basic_import_generic_interface, loc4_23, loaded [symbolic = @J.%Self (constants.%Self.c25)] // CHECK:STDOUT: %Main.import_ref.e9b = import_ref Main//basic_import_generic_interface, loc4_23, unloaded @@ -414,21 +414,21 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: interface { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.e9b -// CHECK:STDOUT: extend imports.%Main.import_ref.7bf +// CHECK:STDOUT: extend imports.%Main.import_ref.76d // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @J.WithSelf.Self.binding.as_type.impls.I.type.require { +// CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.2ff impls imports.%Main.import_ref.358 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.99f327.2: @J.%J.type (%J.type.04e)) [from "basic_import_generic_interface.carbon"] { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.99f327.2: @J.%J.type (%J.type.04e)) [from "basic_import_generic_interface.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c25)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.04e) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c25)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -490,11 +490,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.c25) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.c25) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.c25) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %J.type => constants.%J.type.04e // CHECK:STDOUT: %Self => constants.%Self.c25 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -513,11 +513,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete => constants.%complete_type.5b1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: %J.type => constants.%J.type.d6f // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %I.type => constants.%I.type.ab5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -550,7 +550,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %J.type.d08 = struct_value () [concrete] // CHECK:STDOUT: %J.type.d68: type = facet_type <@J, @J(%T)> [symbolic] // CHECK:STDOUT: %Self.31c: %J.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.31c [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.31c [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -609,15 +609,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %J.WithSelf.decl = constraint_with_self_decl @J [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %J.WithSelf.Self.binding.as_type.impls.I.type.require.decl = require_decl @J.WithSelf.Self.binding.as_type.impls.I.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %I.type.loc5_27.1 +// CHECK:STDOUT: %J.WithSelf.Self.as_type.impls.I.type.require.decl = require_decl @J.WithSelf.Self.as_type.impls.I.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc5_18.1 impls %I.type.loc5_27.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @J.%Self.loc4_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_18.1: type = facet_access_type @J.%Self.loc4_24.1 [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @J.%T.loc4_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type.loc5_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %.loc5: type = specific_constant @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1, @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc4_24.1 @@ -628,17 +628,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: extend @J.WithSelf.%.loc5 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @J.WithSelf.Self.binding.as_type.impls.I.type.require { -// CHECK:STDOUT: require @J.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc5_27.1 +// CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { +// CHECK:STDOUT: require @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type.loc5_18.1 impls @J.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc5_27.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.binding.as_type.impls.I.type.require(@J.%T.loc4_15.2: type, @J.%Self.loc4_24.1: @J.%J.type (%J.type.d68)) { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(@J.%T.loc4_15.2: type, @J.%Self.loc4_24.1: @J.%J.type (%J.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d68)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] +// CHECK:STDOUT: %Self.as_type.loc5_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.type.loc5_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc5_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -660,11 +660,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.31c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %J.type => constants.%J.type.d68 // CHECK:STDOUT: %Self => constants.%Self.31c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc5_18.2 => constants.%Self.as_type // CHECK:STDOUT: %I.type.loc5_27.2 => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -681,7 +681,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %Self.e1f642.1: %J.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.type.1ab: type = facet_type <@I, @I(%T)> [symbolic] // CHECK:STDOUT: %Self.c1b: %I.type.1ab = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e1f642.1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f642.1 [symbolic] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %J.type.d682d6.2: type = facet_type <@J, @J(%empty_struct_type)> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] @@ -697,11 +697,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I = import_ref Main//basic_import_generic_constraint, I, unloaded // CHECK:STDOUT: %Main.J: %J.type.d08 = import_ref Main//basic_import_generic_constraint, J, loaded [concrete = constants.%empty_struct.d2a] -// CHECK:STDOUT: %Main.import_ref.7b1 = import_ref Main//basic_import_generic_constraint, loc5_28, unloaded +// CHECK:STDOUT: %Main.import_ref.5f6 = import_ref Main//basic_import_generic_constraint, loc5_28, unloaded // CHECK:STDOUT: %Main.import_ref.3fa = import_ref Main//basic_import_generic_constraint, loc3_23, unloaded // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//basic_import_generic_constraint, loc3_14, loaded [symbolic = @I.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//basic_import_generic_constraint, loc5_18, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.358: type = import_ref Main//basic_import_generic_constraint, loc5_27, loaded [symbolic = @J.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//basic_import_generic_constraint, loc4_15, loaded [symbolic = @J.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.2fc394.2: @J.%J.type (%J.type.d682d6.1) = import_ref Main//basic_import_generic_constraint, loc4_24, loaded [symbolic = @J.%Self (constants.%Self.e1f642.1)] // CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//basic_import_generic_constraint, loc4_24, unloaded @@ -752,20 +752,20 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.830 -// CHECK:STDOUT: extend imports.%Main.import_ref.7b1 +// CHECK:STDOUT: extend imports.%Main.import_ref.5f6 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @J.WithSelf.Self.binding.as_type.impls.I.type.require { +// CHECK:STDOUT: @J.WithSelf.Self.as_type.impls.I.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.358 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @J.WithSelf.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc394.2: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] { +// CHECK:STDOUT: generic require @J.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.4: type, imports.%Main.import_ref.2fc394.2: @J.%J.type (%J.type.d682d6.1)) [from "basic_import_generic_constraint.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.d682d6.1)] -// CHECK:STDOUT: %Self: @J.WithSelf.Self.binding.as_type.impls.I.type.require.%J.type (%J.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @J.WithSelf.Self.as_type.impls.I.type.require.%J.type (%J.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -803,11 +803,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T, constants.%Self.e1f642.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %J.type => constants.%J.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f642.1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -838,11 +838,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) { +// CHECK:STDOUT: specific @J.WithSelf.Self.as_type.impls.I.type.require(constants.%empty_struct_type, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%empty_struct_type // CHECK:STDOUT: %J.type => constants.%J.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %I.type => constants.%I.type.ab5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -884,7 +884,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %N.type.b47 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.31c: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.31c [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.31c [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -985,15 +985,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %N.WithSelf.Self.binding.as_type.impls.I.type.require.decl = require_decl @N.WithSelf.Self.binding.as_type.impls.I.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %I.type.loc15_27.1 +// CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.I.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.I.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc15_18.1 impls %I.type.loc15_27.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc14_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc15_18.1: type = facet_access_type @N.%Self.loc14_24.1 [symbolic = %Self.as_type.loc15_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc14_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type.loc15_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc15: type = specific_constant @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc15_27.1, @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %.loc15: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc15_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc14_24.1 @@ -1004,17 +1004,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: extend @N.WithSelf.%.loc15 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.I.type.require { -// CHECK:STDOUT: require @N.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc15_27.1 +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { +// CHECK:STDOUT: require @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type.loc15_18.1 impls @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc15_27.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.I.type.require(@N.%T.loc14_15.2: type, @N.%Self.loc14_24.1: @N.%N.type (%N.type.d68)) { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(@N.%T.loc14_15.2: type, @N.%Self.loc14_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] +// CHECK:STDOUT: %Self.as_type.loc15_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc15_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.type.loc15_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc15_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1112,11 +1112,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.31c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 // CHECK:STDOUT: %Self => constants.%Self.31c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc15_18.2 => constants.%Self.as_type // CHECK:STDOUT: %I.type.loc15_27.2 => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1145,7 +1145,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %N.type.b47 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e1f [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f [symbolic] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] // CHECK:STDOUT: %N.type.d682d6.2: type = facet_type <@N, @N(%ptr)> [symbolic] // CHECK:STDOUT: } @@ -1168,9 +1168,9 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %Main.import_ref.61cd7d.2: type = import_ref Main//import_generic, loc12_24, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.ada: type = import_ref Main//import_generic, loc12_33, loaded [symbolic = @C.as.I.impl.8159c7.1.%I.type (constants.%I.type.e19)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic, loc12_15, loaded [symbolic = @C.as.I.impl.8159c7.1.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//import_generic, loc15_28, unloaded -// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %Main.import_ref.15d = import_ref Main//import_generic, loc15_28, unloaded +// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic, loc15_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic, loc15_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Main.import_ref.b3bc94.6: type = import_ref Main//import_generic, loc14_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic, loc14_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] // CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic, loc14_24, unloaded @@ -1294,20 +1294,20 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.830 -// CHECK:STDOUT: extend imports.%Main.import_ref.a5e +// CHECK:STDOUT: extend imports.%Main.import_ref.15d // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.I.type.require { +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.3582b1.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1463,11 +1463,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.e1f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1478,11 +1478,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete => constants.%require_complete.e36 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%C.type.facet) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1502,11 +1502,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete => constants.%require_complete.ffd // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%ptr, constants.%C.type.facet) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%ptr, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%ptr // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %I.type => constants.%I.type.e19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1537,7 +1537,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %N.type.b47 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.31c: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.31c [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.31c [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1611,15 +1611,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %N.WithSelf.Self.binding.as_type.impls.I.type.require.decl = require_decl @N.WithSelf.Self.binding.as_type.impls.I.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %I.type.loc10_27.1 +// CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.I.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.I.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc10_18.1 impls %I.type.loc10_27.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc9_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_18.1: type = facet_access_type @N.%Self.loc9_24.1 [symbolic = %Self.as_type.loc10_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.ref: %I.type.609 = name_ref I, file.%I.decl [concrete = constants.%I.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc9_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type.loc10_27.1: type = facet_type <@I, @I(constants.%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10: type = specific_constant @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc10_27.1, @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %.loc10: type = specific_constant @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc10_27.1, @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc9_24.1 @@ -1630,17 +1630,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: extend @N.WithSelf.%.loc10 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.I.type.require { -// CHECK:STDOUT: require @N.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.as_type impls @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type.loc10_27.1 +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { +// CHECK:STDOUT: require @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type.loc10_18.1 impls @N.WithSelf.Self.as_type.impls.I.type.require.%I.type.loc10_27.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.I.type.require(@N.%T.loc9_15.2: type, @N.%Self.loc9_24.1: @N.%N.type (%N.type.d68)) { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(@N.%T.loc9_15.2: type, @N.%Self.loc9_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] +// CHECK:STDOUT: %Self.as_type.loc10_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %I.type.loc10_27.2: type = facet_type <@I, @I(%T)> [symbolic = %I.type.loc10_27.2 (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1697,11 +1697,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.31c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.31c) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 // CHECK:STDOUT: %Self => constants.%Self.31c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc10_18.2 => constants.%Self.as_type // CHECK:STDOUT: %I.type.loc10_27.2 => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1731,7 +1731,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %N.type.b47 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f642.1: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e1f642.1 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f642.1 [symbolic] // CHECK:STDOUT: %ptr.125: type = ptr_type %ptr.e8f [symbolic] // CHECK:STDOUT: %N.type.d682d6.2: type = facet_type <@N, @N(%ptr.125)> [symbolic] // CHECK:STDOUT: %C.type.facet: %type = facet_value %C, () [concrete] @@ -1756,9 +1756,9 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %Main.import_ref.61c: type = import_ref Main//import_generic_with_different_specific, loc7_24, loaded [concrete = constants.%C] // CHECK:STDOUT: %Main.import_ref.3582b1.1: type = import_ref Main//import_generic_with_different_specific, loc7_32, loaded [symbolic = @C.as.I.impl.431.%I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Main.import_ref.b3bc94.3: type = import_ref Main//import_generic_with_different_specific, loc7_15, loaded [symbolic = @C.as.I.impl.431.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//import_generic_with_different_specific, loc10_28, unloaded -// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] +// CHECK:STDOUT: %Main.import_ref.15d = import_ref Main//import_generic_with_different_specific, loc10_28, unloaded +// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_with_different_specific, loc10_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.3582b1.2: type = import_ref Main//import_generic_with_different_specific, loc10_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.I.type.require.%I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Main.import_ref.b3bc94.5: type = import_ref Main//import_generic_with_different_specific, loc9_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_with_different_specific, loc9_24, loaded [symbolic = @N.%Self (constants.%Self.e1f642.1)] // CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic_with_different_specific, loc9_24, unloaded @@ -1830,20 +1830,20 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.830 -// CHECK:STDOUT: extend imports.%Main.import_ref.a5e +// CHECK:STDOUT: extend imports.%Main.import_ref.15d // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.I.type.require { +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.I.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.3582b1.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.5: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.b3bc94.5: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "import_generic_with_different_specific.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.I.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f642.1)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1952,11 +1952,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.e1f642.1) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%T, constants.%Self.e1f642.1) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f642.1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1979,11 +1979,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %T => constants.%ptr.125 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%ptr.125, constants.%C.type.facet) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.I.type.require(constants.%ptr.125, constants.%C.type.facet) { // CHECK:STDOUT: %T => constants.%ptr.125 // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%C.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %I.type => constants.%I.type.08a // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2024,7 +2024,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %empty_struct: %N.type.b47 = struct_value () [concrete] // CHECK:STDOUT: %N.type.d68: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.31c: %N.type.d68 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.31c [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.31c [symbolic] // CHECK:STDOUT: %J.impl_witness.861: = impl_witness @D.as.J.impl.b25.%J.impl_witness_table, @D.as.J.impl.b25(%T) [symbolic] // CHECK:STDOUT: %ptr: type = ptr_type %T [symbolic] // CHECK:STDOUT: %J.type.80f: type = facet_type <@J, @J(%ptr)> [symbolic] @@ -2116,15 +2116,15 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %N.WithSelf.Self.binding.as_type.impls.J.type.require.decl = require_decl @N.WithSelf.Self.binding.as_type.impls.J.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %J.type.loc8_27.1 +// CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.J.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.J.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc8_18.1 impls %J.type.loc8_27.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self.loc7_24.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc8_18.1: type = facet_access_type @N.%Self.loc7_24.1 [symbolic = %Self.as_type.loc8_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %J.ref: %J.type.885 = name_ref J, file.%J.decl [concrete = constants.%J.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @N.%T.loc7_15.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %J.type.loc8_27.1: type = facet_type <@J, @J(constants.%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.04e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc8: type = specific_constant @N.WithSelf.Self.binding.as_type.impls.J.type.require.%J.type.loc8_27.1, @N.WithSelf.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%Self.31c) [symbolic = %J.type (constants.%J.type.04e)] +// CHECK:STDOUT: %.loc8: type = specific_constant @N.WithSelf.Self.as_type.impls.J.type.require.%J.type.loc8_27.1, @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.31c) [symbolic = %J.type (constants.%J.type.04e)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self.loc7_24.1 @@ -2135,17 +2135,17 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: extend @N.WithSelf.%.loc8 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.J.type.require { -// CHECK:STDOUT: require @N.WithSelf.Self.binding.as_type.impls.J.type.require.%Self.as_type impls @N.WithSelf.Self.binding.as_type.impls.J.type.require.%J.type.loc8_27.1 +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.J.type.require { +// CHECK:STDOUT: require @N.WithSelf.Self.as_type.impls.J.type.require.%Self.as_type.loc8_18.1 impls @N.WithSelf.Self.as_type.impls.J.type.require.%J.type.loc8_27.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.J.type.require(@N.%T.loc7_15.2: type, @N.%Self.loc7_24.1: @N.%N.type (%N.type.d68)) { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.J.type.require(@N.%T.loc7_15.2: type, @N.%Self.loc7_24.1: @N.%N.type (%N.type.d68)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d68)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.J.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.J.type.require.%N.type (%N.type.d68) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.31c)] +// CHECK:STDOUT: %Self.as_type.loc8_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %J.type.loc8_27.2: type = facet_type <@J, @J(%T)> [symbolic = %J.type.loc8_27.2 (constants.%J.type.04e)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2192,11 +2192,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.31c) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%Self.31c) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.31c) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d68 // CHECK:STDOUT: %Self => constants.%Self.31c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc8_18.2 => constants.%Self.as_type // CHECK:STDOUT: %J.type.loc8_27.2 => constants.%J.type.04e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2240,7 +2240,7 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %N.type.d682d6.1: type = facet_type <@N, @N(%T)> [symbolic] // CHECK:STDOUT: %Self.e1f: %N.type.d682d6.1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %require_complete.cc6: = require_complete_type %J.type.04e [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e1f [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e1f [symbolic] // CHECK:STDOUT: %D.type.facet: %type = facet_value %D, () [concrete] // CHECK:STDOUT: %N.type.d682d6.2: type = facet_type <@N, @N(%ptr)> [symbolic] // CHECK:STDOUT: %require_complete.19b: = require_complete_type %J.type.80f [symbolic] @@ -2262,9 +2262,9 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %Main.import_ref.4ae308.2: type = import_ref Main//import_generic_decl, loc21_24, loaded [concrete = constants.%D] // CHECK:STDOUT: %Main.import_ref.739: type = import_ref Main//import_generic_decl, loc21_33, loaded [symbolic = @D.as.J.impl.f050b9.1.%J.type (constants.%J.type.80f)] // CHECK:STDOUT: %Main.import_ref.b3bc94.4: type = import_ref Main//import_generic_decl, loc21_15, loaded [symbolic = @D.as.J.impl.f050b9.1.%T (constants.%T)] -// CHECK:STDOUT: %Main.import_ref.9d6 = import_ref Main//import_generic_decl, loc8_28, unloaded -// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.J.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Main.import_ref.f2a55c.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.WithSelf.Self.binding.as_type.impls.J.type.require.%J.type (constants.%J.type.04e)] +// CHECK:STDOUT: %Main.import_ref.494 = import_ref Main//import_generic_decl, loc8_28, unloaded +// CHECK:STDOUT: %Main.import_ref.213: type = import_ref Main//import_generic_decl, loc8_18, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %Main.import_ref.f2a55c.2: type = import_ref Main//import_generic_decl, loc8_27, loaded [symbolic = @N.WithSelf.Self.as_type.impls.J.type.require.%J.type (constants.%J.type.04e)] // CHECK:STDOUT: %Main.import_ref.b3bc94.6: type = import_ref Main//import_generic_decl, loc7_15, loaded [symbolic = @N.%T (constants.%T)] // CHECK:STDOUT: %Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1) = import_ref Main//import_generic_decl, loc7_24, loaded [symbolic = @N.%Self (constants.%Self.e1f)] // CHECK:STDOUT: %Main.import_ref.830 = import_ref Main//import_generic_decl, loc7_24, unloaded @@ -2388,20 +2388,20 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: constraint { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.830 -// CHECK:STDOUT: extend imports.%Main.import_ref.9d6 +// CHECK:STDOUT: extend imports.%Main.import_ref.494 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.J.type.require { +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.J.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.213 impls imports.%Main.import_ref.f2a55c.2 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.J.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.J.type.require(imports.%Main.import_ref.b3bc94.6: type, imports.%Main.import_ref.2fc394.2: @N.%N.type (%N.type.d682d6.1)) [from "fail_import_generic_decl.carbon"] { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %N.type: type = facet_type <@N, @N(%T)> [symbolic = %N.type (constants.%N.type.d682d6.1)] -// CHECK:STDOUT: %Self: @N.WithSelf.Self.binding.as_type.impls.J.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @N.WithSelf.Self.as_type.impls.J.type.require.%N.type (%N.type.d682d6.1) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e1f)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %J.type: type = facet_type <@J, @J(%T)> [symbolic = %J.type (constants.%J.type.04e)] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2551,11 +2551,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%T, constants.%Self.e1f) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%Self.e1f) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%Self.e1f) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%Self.e1f -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: %J.type => constants.%J.type.04e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2566,11 +2566,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete => constants.%require_complete.cc6 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.J.type.require(constants.%T, constants.%D.type.facet) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%T, constants.%D.type.facet) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.1 // CHECK:STDOUT: %Self => constants.%D.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type => constants.%D // CHECK:STDOUT: %J.type => constants.%J.type.04e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2590,11 +2590,11 @@ impl forall [T:! type] D as N(T*) {} // CHECK:STDOUT: %require_complete => constants.%require_complete.19b // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.J.type.require(constants.%ptr, constants.%D.type.facet) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.J.type.require(constants.%ptr, constants.%D.type.facet) { // CHECK:STDOUT: %T => constants.%ptr // CHECK:STDOUT: %N.type => constants.%N.type.d682d6.2 // CHECK:STDOUT: %Self => constants.%D.type.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type => constants.%D // CHECK:STDOUT: %J.type => constants.%J.type.80f // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon index f5ec589b8c02..800a7b618387 100644 --- a/toolchain/check/testdata/impl/import_interface_assoc_const.carbon +++ b/toolchain/check/testdata/impl/import_interface_assoc_const.carbon @@ -308,7 +308,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -344,8 +344,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -404,7 +404,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -440,8 +440,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref.loc5: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.2: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc5: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc5: type = facet_access_type %.Self.ref.loc5 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref.loc5, %.Self.as_type.loc5 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc5: type = facet_access_type %.Self.ref.loc5 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref.loc5, %.Self.as_type.loc5 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc5: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc5: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -456,8 +456,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref.loc6: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc6: type = facet_access_type %.Self.ref.loc6 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6: type = facet_access_type %.Self.ref.loc6 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6, %.Self.as_type.loc6 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc6: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -516,7 +516,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -556,8 +556,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -619,7 +619,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -657,8 +657,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -673,8 +673,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -735,7 +735,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I3.type: type = facet_type <@I3> [concrete] // CHECK:STDOUT: %Self: %I3.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I3.assoc_type: type = assoc_entity_type @I3 [concrete] // CHECK:STDOUT: %assoc0: %I3.assoc_type = assoc_entity element0, imports.%Main.import_ref.889 [concrete] // CHECK:STDOUT: %I3.lookup_impl_witness: = lookup_impl_witness %.Self, @I3 [symbolic_self] @@ -786,22 +786,22 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I3.ref: type = name_ref I3, imports.%Main.I3 [concrete = constants.%I3.type] // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc17_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc17_21: type = facet_access_type %.Self.ref.loc17_21 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc17_21: type = converted %.Self.ref.loc17_21, %.Self.as_type.loc17_21 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc17_21: type = facet_access_type %.Self.ref.loc17_21 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc17_21: type = converted %.Self.ref.loc17_21, %.Self.as_type.loc17_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.454 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I3.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD1.ref: = name_ref BAD1, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc17_36: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc17_36: type = facet_access_type %.Self.ref.loc17_36 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc17_36: type = converted %.Self.ref.loc17_36, %.Self.as_type.loc17_36 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc17_36: type = facet_access_type %.Self.ref.loc17_36 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc17_36: type = converted %.Self.ref.loc17_36, %.Self.as_type.loc17_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.d88 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%I3.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc17_48.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc17_48.2: type = converted %.loc17_48.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_struct_type} [concrete = constants.%struct_type.a] // CHECK:STDOUT: %.Self.ref.loc17_55: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc17_55: type = facet_access_type %.Self.ref.loc17_55 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc17_55: type = converted %.Self.ref.loc17_55, %.Self.as_type.loc17_55 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc17_55: type = facet_access_type %.Self.ref.loc17_55 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc17_55: type = converted %.Self.ref.loc17_55, %.Self.as_type.loc17_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.4cd [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%I3.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD2.ref: = name_ref BAD2, [concrete = ] @@ -817,22 +817,22 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I3.ref: type = name_ref I3, imports.%Main.I3 [concrete = constants.%I3.type] // CHECK:STDOUT: %.Self: %I3.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc27_21: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc27_21: type = facet_access_type %.Self.ref.loc27_21 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc27_21: type = converted %.Self.ref.loc27_21, %.Self.as_type.loc27_21 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc27_21: type = facet_access_type %.Self.ref.loc27_21 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc27_21: type = converted %.Self.ref.loc27_21, %.Self.as_type.loc27_21 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T1.ref: %I3.assoc_type = name_ref T1, imports.%Main.import_ref.454 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I3.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc27_33.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc27_33.2: type = converted %.loc27_33.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %struct_type.b: type = struct_type {.b: %empty_struct_type} [concrete = constants.%struct_type.b] // CHECK:STDOUT: %.Self.ref.loc27_40: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc27_40: type = facet_access_type %.Self.ref.loc27_40 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc27_40: type = converted %.Self.ref.loc27_40, %.Self.as_type.loc27_40 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc27_40: type = facet_access_type %.Self.ref.loc27_40 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc27_40: type = converted %.Self.ref.loc27_40, %.Self.as_type.loc27_40 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T2.ref: %I3.assoc_type = name_ref T2, imports.%Main.import_ref.d88 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%I3.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %BAD3.ref: = name_ref BAD3, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc27_55: %I3.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc27_55: type = facet_access_type %.Self.ref.loc27_55 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc27_55: type = converted %.Self.ref.loc27_55, %.Self.as_type.loc27_55 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc27_55: type = facet_access_type %.Self.ref.loc27_55 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc27_55: type = converted %.Self.ref.loc27_55, %.Self.as_type.loc27_55 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T3.ref: %I3.assoc_type = name_ref T3, imports.%Main.import_ref.4cd [concrete = constants.%assoc2] // CHECK:STDOUT: %impl.elem2: type = impl_witness_access constants.%I3.lookup_impl_witness, element2 [symbolic_self = constants.%impl.elem2] // CHECK:STDOUT: %BAD4.ref: = name_ref BAD4, [concrete = ] @@ -888,7 +888,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -924,8 +924,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc5_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc5_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -990,7 +990,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -1024,15 +1024,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc10_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_32, %.loc10_26.2 [concrete = constants.%empty_struct_type] @@ -1086,7 +1086,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -1120,14 +1120,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD5.ref: = name_ref BAD5, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc10_34: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_34: type = facet_access_type %.Self.ref.loc10_34 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_34: type = converted %.Self.ref.loc10_34, %.Self.as_type.loc10_34 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_34: type = facet_access_type %.Self.ref.loc10_34 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_34: type = converted %.Self.ref.loc10_34, %.Self.as_type.loc10_34 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_34: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_34, [concrete = ] @@ -1180,7 +1180,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -1214,15 +1214,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_20: type = facet_access_type %.Self.ref.loc10_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_20: type = converted %.Self.ref.loc10_20, %.Self.as_type.loc10_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc10_26.2: type = converted %.loc10_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc10_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_32, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc10_32, %.loc10_26.2 [concrete = constants.%empty_struct_type] @@ -1274,7 +1274,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -1308,14 +1308,14 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc14_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc14_20: type = facet_access_type %.Self.ref.loc14_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc14_20: type = converted %.Self.ref.loc14_20, %.Self.as_type.loc14_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc14_20: type = facet_access_type %.Self.ref.loc14_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc14_20: type = converted %.Self.ref.loc14_20, %.Self.as_type.loc14_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc14_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc14_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %BAD7.ref: = name_ref BAD7, [concrete = ] // CHECK:STDOUT: %.Self.ref.loc14_34: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc14_34: type = facet_access_type %.Self.ref.loc14_34 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc14_34: type = converted %.Self.ref.loc14_34, %.Self.as_type.loc14_34 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc14_34: type = facet_access_type %.Self.ref.loc14_34 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc14_34: type = converted %.Self.ref.loc14_34, %.Self.as_type.loc14_34 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc14_34: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc14_34: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc14_34, [concrete = ] @@ -1367,7 +1367,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.9c9 [concrete] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] @@ -1403,15 +1403,15 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc6_20: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6_20: type = facet_access_type %.Self.ref.loc6_20 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_20: type = converted %.Self.ref.loc6_20, %.Self.as_type.loc6_20 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc6_20: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_20: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_26.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc6_26.2: type = converted %.loc6_26.1, constants.%empty_struct_type [concrete = constants.%empty_struct_type] // CHECK:STDOUT: %.Self.ref.loc6_32: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc6_32: type = facet_access_type %.Self.ref.loc6_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_32: type = converted %.Self.ref.loc6_32, %.Self.as_type.loc6_32 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc6_32: type = facet_access_type %.Self.ref.loc6_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_32: type = converted %.Self.ref.loc6_32, %.Self.as_type.loc6_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc6_32: %I.assoc_type = name_ref T, imports.%Main.import_ref.8ef [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc6_32: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc6_32, %.loc6_26.2 [concrete = constants.%empty_struct_type] @@ -1472,7 +1472,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %NonType.type: type = facet_type <@NonType> [concrete] // CHECK:STDOUT: %Self: %NonType.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %.Self: %NonType.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %NonType.assoc_type: type = assoc_entity_type @NonType [concrete] // CHECK:STDOUT: %assoc0: %NonType.assoc_type = assoc_entity element0, imports.%Main.import_ref.e29 [concrete] // CHECK:STDOUT: %NonType.lookup_impl_witness: = lookup_impl_witness %.Self, @NonType [symbolic_self] @@ -1510,8 +1510,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %NonType.ref: type = name_ref NonType, imports.%Main.NonType [concrete = constants.%NonType.type] // CHECK:STDOUT: %.Self: %NonType.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %NonType.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc6_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc6_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y.ref: %NonType.assoc_type = name_ref Y, imports.%Main.import_ref.fe0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %struct_type.a.225 = impl_witness_access constants.%NonType.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc6_38: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -1620,7 +1620,7 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %.Self: %IF.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %IF.WithSelf.F.type.923: type = fn_type @IF.WithSelf.F, @IF.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %IF.WithSelf.F.7ce: %IF.WithSelf.F.type.923 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %IF.assoc_type: type = assoc_entity_type @IF [concrete] // CHECK:STDOUT: %assoc0: %IF.assoc_type = assoc_entity element0, imports.%Main.import_ref.ae5 [concrete] // CHECK:STDOUT: %IF.lookup_impl_witness: = lookup_impl_witness %.Self, @IF [symbolic_self] @@ -1657,8 +1657,8 @@ impl CD as IF where .F = 0 { // CHECK:STDOUT: %IF.ref: type = name_ref IF, imports.%Main.IF [concrete = constants.%IF.type] // CHECK:STDOUT: %.Self: %IF.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %IF.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref: %IF.assoc_type = name_ref F, imports.%Main.import_ref.82a [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %.8a4 = impl_witness_access constants.%IF.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] diff --git a/toolchain/check/testdata/impl/import_self.carbon b/toolchain/check/testdata/impl/import_self.carbon index 7fc8a4e24c44..7ccc30e39e1c 100644 --- a/toolchain/check/testdata/impl/import_self.carbon +++ b/toolchain/check/testdata/impl/import_self.carbon @@ -41,9 +41,9 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Add.type: type = facet_type <@Add> [concrete] // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %.e62: Core.Form = init_form %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.108: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op: %Add.WithSelf.Op.type = struct_value () [symbolic] // CHECK:STDOUT: %Add.assoc_type: type = assoc_entity_type @Add [concrete] @@ -80,25 +80,25 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %return.patt: @Add.WithSelf.Op.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt, %.loc5_37.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_37: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.e62)] -// CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc5_37: type = facet_access_type %Self.ref.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37.2: type = converted %Self.ref.loc5_37, %Self.as_type.loc5_37 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_37.3: Core.Form = init_form %.loc5_37.2 [symbolic = %.loc5_37.1 (constants.%.108)] +// CHECK:STDOUT: %self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_15: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_15: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref.loc5_15 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref.loc5_15, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param -// CHECK:STDOUT: %other.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param1 -// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param1 +// CHECK:STDOUT: %.loc5_28.1: type = splice_block %.loc5_28.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc5_28: %Add.type = name_ref Self, @Add.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_28: type = facet_access_type %Self.ref.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_28.2: type = converted %Self.ref.loc5_28, %Self.as_type.loc5_28 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %other: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding other, %other.param -// CHECK:STDOUT: %return.param: ref @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param2 -// CHECK:STDOUT: %return: ref @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %other: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding other, %other.param +// CHECK:STDOUT: %return.param: ref @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = out_param call_param2 +// CHECK:STDOUT: %return: ref @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Add.assoc_type = assoc_entity element0, %Add.WithSelf.Op.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -112,20 +112,20 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.WithSelf.Op(@Add.%Self: %Add.type) { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] -// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc5_37.1 (constants.%.e62)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %.loc5_37.1: Core.Form = init_form %Self.as_type.loc5_15.1 [symbolic = %.loc5_37.1 (constants.%.108)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type), %other.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type); +// CHECK:STDOUT: fn(%self.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type), %other.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)) -> out %return.param: @Add.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type -// CHECK:STDOUT: %.loc5_37.1 => constants.%.e62 +// CHECK:STDOUT: %.loc5_37.1 => constants.%.108 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- b.carbon @@ -139,9 +139,9 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.type.099: type = fn_type @Add.WithSelf.Op, @Add.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Add.WithSelf.Op.99a: %Add.WithSelf.Op.type.099 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5af: type = pattern_type %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %.32a: Core.Form = init_form %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.0d9: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.1c4: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %Add.impl_witness: = impl_witness @C.as.Add.impl.%Add.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete] // CHECK:STDOUT: %.a69: Core.Form = init_form %C [concrete] @@ -257,9 +257,9 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Add.WithSelf.Op(imports.%Main.import_ref.bb084d.2: %Add.type) [from "a.carbon"] { // CHECK:STDOUT: %Self: %Add.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.5af)] -// CHECK:STDOUT: %.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.1 (constants.%.32a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.0d9)] +// CHECK:STDOUT: %.1: Core.Form = init_form %Self.as_type [symbolic = %.1 (constants.%.1c4)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -299,9 +299,9 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.5af -// CHECK:STDOUT: %.1 => constants.%.32a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0d9 +// CHECK:STDOUT: %.1 => constants.%.1c4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf(constants.%Add.facet) { @@ -313,7 +313,7 @@ fn F(x: C, y: C) -> C { // CHECK:STDOUT: // CHECK:STDOUT: specific @Add.WithSelf.Op(constants.%Add.facet) { // CHECK:STDOUT: %Self => constants.%Add.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: %.1 => constants.%.a69 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/import_self_specific.carbon b/toolchain/check/testdata/impl/import_self_specific.carbon index f10ca96e1ba2..842ae8e21d3c 100644 --- a/toolchain/check/testdata/impl/import_self_specific.carbon +++ b/toolchain/check/testdata/impl/import_self_specific.carbon @@ -364,7 +364,7 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %.Self.1dc: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.type.29d: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self.1dc) [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.8ec: %I.WithSelf.F.type.29d = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.c8f [concrete] // CHECK:STDOUT: %I.lookup_impl_witness.c4b: = lookup_impl_witness %.Self.1dc, @I [symbolic_self] @@ -447,8 +447,8 @@ impl forall [N:! E] D(N) as I where .Assoc = () { // CHECK:STDOUT: %I.ref: type = name_ref I, imports.%Main.I [concrete = constants.%I.type] // CHECK:STDOUT: %.Self.1: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc20_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc20_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Assoc.ref: %I.assoc_type = name_ref Assoc, imports.%Main.import_ref.414 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %Y.type = impl_witness_access constants.%I.lookup_impl_witness.c4b, element0 [symbolic_self = constants.%impl.elem0.66e] // CHECK:STDOUT: %.loc20_47.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/impl/incomplete.carbon b/toolchain/check/testdata/impl/incomplete.carbon index 28da79100c1a..8da0b4d713be 100644 --- a/toolchain/check/testdata/impl/incomplete.carbon +++ b/toolchain/check/testdata/impl/incomplete.carbon @@ -344,7 +344,7 @@ interface B { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -360,8 +360,8 @@ interface B { // CHECK:STDOUT: %J.ref.loc13: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self.2: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc13: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc13: type = facet_access_type %.Self.ref.loc13 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_19: type = converted %.Self.ref.loc13, %.Self.as_type.loc13 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc13: type = facet_access_type %.Self.ref.loc13 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_19: type = converted %.Self.ref.loc13, %.Self.as_type.loc13 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc13: = name_ref X, [concrete = ] // CHECK:STDOUT: %.loc13_25: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc13_13: type = where_expr %.Self.2 [concrete = ] { @@ -374,8 +374,8 @@ interface B { // CHECK:STDOUT: %J.ref.loc22: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self.1: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc22: %J.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc22: type = facet_access_type %.Self.ref.loc22 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc22_19: type = converted %.Self.ref.loc22, %.Self.as_type.loc22 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc22: type = facet_access_type %.Self.ref.loc22 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc22_19: type = converted %.Self.ref.loc22, %.Self.as_type.loc22 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref.loc22: = name_ref X, [concrete = ] // CHECK:STDOUT: %.loc22_25: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc22_13: type = where_expr %.Self.1 [concrete = ] { @@ -451,7 +451,7 @@ interface B { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Incomplete.type: type = facet_type <@Incomplete> [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where .Self impls @Incomplete> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %I.facet: %I.type = facet_value %C, (%I.impl_witness) [concrete] @@ -472,8 +472,8 @@ interface B { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Incomplete.ref: type = name_ref Incomplete, file.%Incomplete.decl [concrete = constants.%Incomplete.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_13: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc8_19, %Incomplete.ref @@ -530,7 +530,7 @@ interface B { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%T [concrete] // CHECK:STDOUT: %Incomplete.type: type = facet_type <@Incomplete> [concrete] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] @@ -555,11 +555,11 @@ interface B { // CHECK:STDOUT: %.Self.2: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc8_19: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Incomplete.ref.loc8: type = name_ref Incomplete, file.%Incomplete.decl [concrete = constants.%Incomplete.type] -// CHECK:STDOUT: %.Self.as_type.loc8_19: type = facet_access_type %.Self.ref.loc8_19 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref.loc8_19, %.Self.as_type.loc8_19 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc8_19: type = facet_access_type %.Self.ref.loc8_19 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref.loc8_19, %.Self.as_type.loc8_19 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.Self.ref.loc8_46: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc8_46: type = facet_access_type %.Self.ref.loc8_46 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_46: type = converted %.Self.ref.loc8_46, %.Self.as_type.loc8_46 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc8_46: type = facet_access_type %.Self.ref.loc8_46 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_46: type = converted %.Self.ref.loc8_46, %.Self.as_type.loc8_46 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc8: %J.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_52.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -576,11 +576,11 @@ interface B { // CHECK:STDOUT: %.Self.1: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref.loc10_19: %J.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Incomplete.ref.loc10: type = name_ref Incomplete, file.%Incomplete.decl [concrete = constants.%Incomplete.type] -// CHECK:STDOUT: %.Self.as_type.loc10_19: type = facet_access_type %.Self.ref.loc10_19 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_19: type = converted %.Self.ref.loc10_19, %.Self.as_type.loc10_19 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_19: type = facet_access_type %.Self.ref.loc10_19 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_19: type = converted %.Self.ref.loc10_19, %.Self.as_type.loc10_19 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.Self.ref.loc10_46: %J.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type.loc10_46: type = facet_access_type %.Self.ref.loc10_46 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_46: type = converted %.Self.ref.loc10_46, %.Self.as_type.loc10_46 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_46: type = facet_access_type %.Self.ref.loc10_46 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_46: type = converted %.Self.ref.loc10_46, %.Self.as_type.loc10_46 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref.loc10: %J.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_52.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -651,7 +651,7 @@ interface B { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Incomplete.type: type = facet_type <@Incomplete> [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I_where.type: type = facet_type <@I where .Self impls @Incomplete> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete] @@ -674,8 +674,8 @@ interface B { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Incomplete.ref: type = name_ref Incomplete, file.%Incomplete.decl [concrete = constants.%Incomplete.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_13: type = where_expr %.Self [concrete = constants.%I_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc8_19, %Incomplete.ref @@ -772,16 +772,16 @@ interface B { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Self.550: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.5cb: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type.92a: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %X.type: type = facet_type <@X> [concrete] // CHECK:STDOUT: %Self.e52: %X.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %X.assoc_type: type = assoc_entity_type @X [concrete] // CHECK:STDOUT: %assoc0: %X.assoc_type = assoc_entity element0, @X.WithSelf.%X1 [concrete] -// CHECK:STDOUT: %Self.binding.as_type.806: type = symbolic_binding_type Self, 0, %Self.e52 [symbolic] +// CHECK:STDOUT: %Self.as_type.dff: type = facet_access_type %Self.e52 [symbolic] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %.Self.637: %X.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.637 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.637 [symbolic_self] // CHECK:STDOUT: %X.lookup_impl_witness: = lookup_impl_witness %.Self.637, @X [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %X.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -811,8 +811,8 @@ interface B { // CHECK:STDOUT: %X.ref: type = name_ref X, file.%X.decl [concrete = constants.%X.type] // CHECK:STDOUT: %.Self.2: %X.type = symbolic_binding .Self [symbolic_self = constants.%.Self.637] // CHECK:STDOUT: %.Self.ref: %X.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.637] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc16_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc16_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X1.ref: %X.assoc_type = name_ref X1, @X1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%X.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc16_32.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -836,10 +836,10 @@ interface B { // CHECK:STDOUT: %X1: type = assoc_const_decl @X1 [concrete] { // CHECK:STDOUT: %assoc0: %X.assoc_type = assoc_entity element0, @X.WithSelf.%X1 [concrete = constants.%assoc0] // CHECK:STDOUT: } -// CHECK:STDOUT: %X.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @X.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Y.ref +// CHECK:STDOUT: %X.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @X.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc12_11.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @X.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.806)] +// CHECK:STDOUT: %Self.as_type.loc12_11.1: type = facet_access_type @X.%Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.dff)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -851,8 +851,8 @@ interface B { // CHECK:STDOUT: witness = (@X.WithSelf.%X1) // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @X.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @X.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @X.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @X.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @X.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc12_11.1 impls @X.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -861,10 +861,10 @@ interface B { // CHECK:STDOUT: %Y.WithSelf.decl = constraint_with_self_decl @Y [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Y.WithSelf.Self.binding.as_type.impls.Z.type.require.decl = require_decl @Y.WithSelf.Self.binding.as_type.impls.Z.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Z.ref +// CHECK:STDOUT: %Y.WithSelf.Self.as_type.impls.Z.type.require.decl = require_decl @Y.WithSelf.Self.as_type.impls.Z.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc6_11.1 impls %Z.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Y.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)] +// CHECK:STDOUT: %Self.as_type.loc6_11.1: type = facet_access_type @Y.%Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.92a)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -874,19 +874,19 @@ interface B { // CHECK:STDOUT: .Z = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Y.WithSelf.Self.binding.as_type.impls.Z.type.require { -// CHECK:STDOUT: require @Y.WithSelf.Self.binding.as_type.impls.Z.type.require.%Self.as_type impls @Y.WithSelf.Self.binding.as_type.impls.Z.type.require.%Z.ref +// CHECK:STDOUT: @Y.WithSelf.Self.as_type.impls.Z.type.require { +// CHECK:STDOUT: require @Y.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type.loc6_11.1 impls @Y.WithSelf.Self.as_type.impls.Z.type.require.%Z.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Y.WithSelf.Self.binding.as_type.impls.Z.type.require(@Y.%Self: %Y.type) { +// CHECK:STDOUT: generic require @Y.WithSelf.Self.as_type.impls.Z.type.require(@Y.%Self: %Y.type) { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)] +// CHECK:STDOUT: %Self.as_type.loc6_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_11.2 (constants.%Self.as_type.92a)] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @X.WithSelf.Self.binding.as_type.impls.Y.type.require(@X.%Self: %X.type) { +// CHECK:STDOUT: generic require @X.WithSelf.Self.as_type.impls.Y.type.require(@X.%Self: %X.type) { // CHECK:STDOUT: %Self: %X.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.e52)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.806)] +// CHECK:STDOUT: %Self.as_type.loc12_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc12_11.2 (constants.%Self.as_type.dff)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc16_14.2: %X_where.type) { @@ -902,9 +902,9 @@ interface B { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Self.550) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.5cb +// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.92a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf(constants.%Self.e52) { @@ -915,14 +915,14 @@ interface B { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Y.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%Self.e52) { +// CHECK:STDOUT: specific @Y.WithSelf.Self.as_type.impls.Z.type.require(constants.%Self.e52) { // CHECK:STDOUT: %Self => constants.%Self.e52 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.806 +// CHECK:STDOUT: %Self.as_type.loc6_11.2 => constants.%Self.as_type.dff // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @X.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.e52) { +// CHECK:STDOUT: specific @X.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.e52) { // CHECK:STDOUT: %Self => constants.%Self.e52 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.806 +// CHECK:STDOUT: %Self.as_type.loc12_11.2 => constants.%Self.as_type.dff // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @X.WithSelf(constants.%.Self.637) { diff --git a/toolchain/check/testdata/impl/interface_args.carbon b/toolchain/check/testdata/impl/interface_args.carbon index abf320ebb8ac..c09274aefb03 100644 --- a/toolchain/check/testdata/impl/interface_args.carbon +++ b/toolchain/check/testdata/impl/interface_args.carbon @@ -118,8 +118,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.595 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9fe: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.9fe = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8de: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.446: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %Dest [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %Dest [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Dest, %Self) [symbolic] @@ -156,21 +156,21 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.446) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_18 (%pattern_type.446) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc4_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %Dest.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Dest.ref: type = name_ref Dest, @ImplicitAs.%Dest.loc3_26.2 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %.loc4_31.2: Core.Form = init_form %Dest.ref [symbolic = %.loc4_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_20.1: type = splice_block %.loc4_20.3 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = specific_constant @ImplicitAs.%Self.loc3_35.1, @ImplicitAs(constants.%Dest) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = name_ref Self, %.loc4_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_20.3: type = converted %Self.ref, %Self.as_type.loc4_20.2 [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.WithSelf.Convert.%Dest (%Dest) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.WithSelf.Convert.%Dest (%Dest) = return_slot %return.param // CHECK:STDOUT: } @@ -191,12 +191,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Dest: type = symbolic_binding Dest, 0 [symbolic = %Dest (constants.%Dest)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%Dest)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %Self.as_type.loc4_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc4_18: type = pattern_type %Self.as_type.loc4_20.1 [symbolic = %pattern_type.loc4_18 (constants.%pattern_type.446)] // CHECK:STDOUT: %.loc4_31.1: Core.Form = init_form %Dest [symbolic = %.loc4_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc4_31: type = pattern_type %Dest [symbolic = %pattern_type.loc4_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc4_20.1 (%Self.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%Dest (%Dest); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ImplicitAs(constants.%Dest) { @@ -209,8 +209,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Dest => constants.%Dest // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.8de +// CHECK:STDOUT: %Self.as_type.loc4_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc4_18 => constants.%pattern_type.446 // CHECK:STDOUT: %.loc4_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc4_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -227,8 +227,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.generic: %Action.type.85c = struct_value () [concrete] // CHECK:STDOUT: %Action.type.c84: type = facet_type <@Action, @Action(%T)> [symbolic] // CHECK:STDOUT: %Self.e2a: %Action.type.c84 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.e2a [symbolic] -// CHECK:STDOUT: %pattern_type.84c: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.e2a [symbolic] +// CHECK:STDOUT: %pattern_type.f07: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.type.ecb: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.e2a) [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.a8d: %Action.WithSelf.Op.type.ecb = struct_value () [symbolic] // CHECK:STDOUT: %Action.assoc_type.8f2: type = assoc_entity_type @Action, @Action(%T) [symbolic] @@ -314,17 +314,17 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Action.WithSelf.Op.decl: @Action.WithSelf.%Action.WithSelf.Op.type (%Action.WithSelf.Op.type.ecb) = fn_decl @Action.WithSelf.Op [symbolic = @Action.WithSelf.%Action.WithSelf.Op (constants.%Action.WithSelf.Op.a8d)] { -// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.84c) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.f07) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Action.WithSelf.Op.%pattern_type (%pattern_type.f07) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Action.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_15.2: @Action.WithSelf.Op.%Action.type (%Action.type.c84) = specific_constant @Action.%Self.loc4_28.1, @Action(constants.%T) [symbolic = %Self (constants.%Self.e2a)] // CHECK:STDOUT: %Self.ref: @Action.WithSelf.Op.%Action.type (%Action.type.c84) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self.e2a)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Action.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_22.1: @Action.WithSelf.%Action.assoc_type (%Action.assoc_type.8f2) = assoc_entity element0, %Action.WithSelf.Op.decl [symbolic = %assoc0.loc5_22.2 (constants.%assoc0.066)] // CHECK:STDOUT: @@ -382,10 +382,10 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.c84)] // CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.c84) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.e2a)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.84c)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.f07)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Action.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Action.WithSelf.Op.%Self.as_type.loc5_15.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.as.Action.impl.Op(%self.param: %A) { @@ -417,8 +417,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.c84 // CHECK:STDOUT: %Self => constants.%Self.e2a -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.84c +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f07 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { @@ -455,7 +455,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Action.type => constants.%Action.type.879 // CHECK:STDOUT: %Self => constants.%Action.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%A +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%A // CHECK:STDOUT: %pattern_type => constants.%pattern_type.1ab // CHECK:STDOUT: } // CHECK:STDOUT: @@ -474,8 +474,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.assoc_type.8f2: type = assoc_entity_type @Action, @Action(%T) [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.type.c6d: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.6c1) [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.290: %Action.WithSelf.Op.type.c6d = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.6c1 [symbolic] -// CHECK:STDOUT: %pattern_type.0c5: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.6c1 [symbolic] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Action.type.879: type = facet_type <@Action, @Action(%B)> [concrete] // CHECK:STDOUT: %Self.76c: %Action.type.879 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] @@ -590,8 +590,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.c84)] // CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.c84) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.6c1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.0c5)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e39)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -622,8 +622,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.c84 // CHECK:STDOUT: %Self => constants.%Self.6c1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0c5 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { @@ -670,8 +670,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Action.assoc_type.8f2: type = assoc_entity_type @Action, @Action(%T) [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.type.c6d: type = fn_type @Action.WithSelf.Op, @Action.WithSelf(%T, %Self.6c1) [symbolic] // CHECK:STDOUT: %Action.WithSelf.Op.290: %Action.WithSelf.Op.type.c6d = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.6c1 [symbolic] -// CHECK:STDOUT: %pattern_type.0c5: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.6c1 [symbolic] +// CHECK:STDOUT: %pattern_type.e39: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Action.type.879: type = facet_type <@Action, @Action(%B)> [concrete] // CHECK:STDOUT: %Self.76c: %Action.type.879 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %A: type = class_type @A [concrete] @@ -789,8 +789,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Action.type: type = facet_type <@Action, @Action(%T)> [symbolic = %Action.type (constants.%Action.type.c84)] // CHECK:STDOUT: %Self: @Action.WithSelf.Op.%Action.type (%Action.type.c84) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.6c1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.0c5)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e39)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -816,8 +816,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Action.type => constants.%Action.type.c84 // CHECK:STDOUT: %Self => constants.%Self.6c1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0c5 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Action(constants.%B) { @@ -864,8 +864,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.WithSelf.Make.6b9: %Factory.WithSelf.Make.type.086 = struct_value () [symbolic] // CHECK:STDOUT: %Factory.assoc_type.129: type = assoc_entity_type @Factory, @Factory(%T) [symbolic] // CHECK:STDOUT: %assoc0.cdd: %Factory.assoc_type.129 = assoc_entity element0, @Factory.WithSelf.%Factory.WithSelf.Make.decl [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.cc4 [symbolic] -// CHECK:STDOUT: %pattern_type.077: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.cc4 [symbolic] +// CHECK:STDOUT: %pattern_type.022: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Method.type.900: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.cc4) [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Method.655: %Factory.WithSelf.Method.type.900 = struct_value () [symbolic] // CHECK:STDOUT: %assoc1.a88: %Factory.assoc_type.129 = assoc_entity element1, @Factory.WithSelf.%Factory.WithSelf.Method.decl [symbolic] @@ -954,21 +954,21 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_17.1: @Factory.WithSelf.%Factory.assoc_type (%Factory.assoc_type.129) = assoc_entity element0, %Factory.WithSelf.Make.decl [symbolic = %assoc0.loc6_17.2 (constants.%assoc0.cdd)] // CHECK:STDOUT: %Factory.WithSelf.Method.decl: @Factory.WithSelf.%Factory.WithSelf.Method.type (%Factory.WithSelf.Method.type.900) = fn_decl @Factory.WithSelf.Method [symbolic = @Factory.WithSelf.%Factory.WithSelf.Method (constants.%Factory.WithSelf.Method.655)] { -// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.077) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.077) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.022) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Factory.WithSelf.Method.%pattern_type.loc8_17 (%pattern_type.022) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @Factory.WithSelf.Method.%pattern_type.loc8_30 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @Factory.%T.loc4_20.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc8_30.2: Core.Form = init_form %T.ref [symbolic = %.loc8_30.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @Factory.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Factory.WithSelf.Method.%Self.as_type.loc8_19.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_19.1: type = splice_block %.loc8_19.3 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc8_19.2: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = specific_constant @Factory.%Self.loc4_29.1, @Factory(constants.%T) [symbolic = %Self (constants.%Self.cc4)] // CHECK:STDOUT: %Self.ref: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = name_ref Self, %.loc8_19.2 [symbolic = %Self (constants.%Self.cc4)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc8_19.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc8_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc8_19.3: type = converted %Self.ref, %Self.as_type.loc8_19.2 [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Factory.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Factory.WithSelf.Method.%Self.as_type.loc8_19.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @Factory.WithSelf.Method.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @Factory.WithSelf.Method.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -1048,12 +1048,12 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.142)] // CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.cc4)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_17: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_17 (constants.%pattern_type.077)] +// CHECK:STDOUT: %Self.as_type.loc8_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc8_17: type = pattern_type %Self.as_type.loc8_19.1 [symbolic = %pattern_type.loc8_17 (constants.%pattern_type.022)] // CHECK:STDOUT: %.loc8_30.1: Core.Form = init_form %T [symbolic = %.loc8_30.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc8_30: type = pattern_type %T [symbolic = %pattern_type.loc8_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Factory.WithSelf.Method.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @Factory.WithSelf.Method.%T (%T); +// CHECK:STDOUT: fn(%self.param: @Factory.WithSelf.Method.%Self.as_type.loc8_19.1 (%Self.as_type)) -> out %return.param: @Factory.WithSelf.Method.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @A.as.Factory.impl.Make() -> out %return.param: %B; @@ -1076,8 +1076,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.142 // CHECK:STDOUT: %Self => constants.%Self.cc4 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.077 +// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.022 // CHECK:STDOUT: %.loc8_30.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1128,7 +1128,7 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%B // CHECK:STDOUT: %Factory.type => constants.%Factory.type.5dd // CHECK:STDOUT: %Self => constants.%Factory.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%A +// CHECK:STDOUT: %Self.as_type.loc8_19.1 => constants.%A // CHECK:STDOUT: %pattern_type.loc8_17 => constants.%pattern_type.1ab // CHECK:STDOUT: %.loc8_30.1 => constants.%.7df // CHECK:STDOUT: %pattern_type.loc8_30 => constants.%pattern_type.1f4 @@ -1149,8 +1149,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.WithSelf.Method.type.e3d: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.197) [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Method.f9e: %Factory.WithSelf.Method.type.e3d = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.197 [symbolic] -// CHECK:STDOUT: %pattern_type.12d: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.197 [symbolic] +// CHECK:STDOUT: %pattern_type.3d0: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Make.type.865: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.197) [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Make.400: %Factory.WithSelf.Make.type.865 = struct_value () [symbolic] @@ -1303,8 +1303,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.142)] // CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.197)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.12d)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.3d0)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1364,8 +1364,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.142 // CHECK:STDOUT: %Self => constants.%Self.197 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.12d +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.3d0 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -1427,8 +1427,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %Factory.WithSelf.Method.type.e3d: type = fn_type @Factory.WithSelf.Method, @Factory.WithSelf(%T, %Self.197) [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Method.f9e: %Factory.WithSelf.Method.type.e3d = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %T [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.197 [symbolic] -// CHECK:STDOUT: %pattern_type.12d: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.197 [symbolic] +// CHECK:STDOUT: %pattern_type.3d0: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Make.type.865: type = fn_type @Factory.WithSelf.Make, @Factory.WithSelf(%T, %Self.197) [symbolic] // CHECK:STDOUT: %Factory.WithSelf.Make.400: %Factory.WithSelf.Make.type.865 = struct_value () [symbolic] @@ -1580,8 +1580,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Factory.type: type = facet_type <@Factory, @Factory(%T)> [symbolic = %Factory.type (constants.%Factory.type.142)] // CHECK:STDOUT: %Self: @Factory.WithSelf.Method.%Factory.type (%Factory.type.142) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.197)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.12d)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.3d0)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -1628,8 +1628,8 @@ fn InstanceC(a: A) -> C { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Factory.type => constants.%Factory.type.142 // CHECK:STDOUT: %Self => constants.%Self.197 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.12d +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.3d0 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon index e4b942779097..5779ec2dde58 100644 --- a/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon +++ b/toolchain/check/testdata/impl/lookup/canonical_query_self.carbon @@ -51,8 +51,8 @@ fn G() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type.d31 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type.a26 [symbolic] // CHECK:STDOUT: %I.WithSelf.II.type.7d3: type = fn_type @I.WithSelf.II, @I.WithSelf(%Self.ab9) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.WithSelf.II.54d: %I.WithSelf.II.type.7d3 = struct_value () [symbolic] @@ -60,8 +60,8 @@ fn G() { // CHECK:STDOUT: %assoc0.27e: %I.assoc_type = assoc_entity element0, @I.WithSelf.%I.WithSelf.II.decl [concrete] // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %Self.8a1: %J.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.ed8: type = symbolic_binding_type Self, 0, %Self.8a1 [symbolic] -// CHECK:STDOUT: %pattern_type.832: type = pattern_type %Self.binding.as_type.ed8 [symbolic] +// CHECK:STDOUT: %Self.as_type.9ea: type = facet_access_type %Self.8a1 [symbolic] +// CHECK:STDOUT: %pattern_type.909: type = pattern_type %Self.as_type.9ea [symbolic] // CHECK:STDOUT: %J.WithSelf.JJ.type.21e: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%Self.8a1) [symbolic] // CHECK:STDOUT: %J.WithSelf.JJ.473: %J.WithSelf.JJ.type.21e = struct_value () [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] @@ -81,24 +81,24 @@ fn G() { // CHECK:STDOUT: %facet_type: type = facet_type <@I & @J> [concrete] // CHECK:STDOUT: %pattern_type.840: type = pattern_type %facet_type [concrete] // CHECK:STDOUT: %T: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.bd7: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.727: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] -// CHECK:STDOUT: %I.facet.990: %I.type = facet_value %T.binding.as_type, (%I.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %I.facet.7fc: %I.type = facet_value %T.as_type, (%I.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet.a3a: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %J.facet.812: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness) [symbolic] // CHECK:STDOUT: %I.WithSelf.II.type.b73: type = fn_type @I.WithSelf.II, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.WithSelf.II.1db: %I.WithSelf.II.type.b73 = struct_value () [symbolic] // CHECK:STDOUT: %J.WithSelf.JJ.type.aa2: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%T) [symbolic] // CHECK:STDOUT: %J.WithSelf.JJ.2a2: %J.WithSelf.JJ.type.aa2 = struct_value () [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.type.b4e: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.a3a) [symbolic] -// CHECK:STDOUT: %J.WithSelf.JJ.b7f: %J.WithSelf.JJ.type.b4e = struct_value () [symbolic] -// CHECK:STDOUT: %.130: type = fn_type_with_self_type %J.WithSelf.JJ.type.b4e, %J.facet.a3a [symbolic] -// CHECK:STDOUT: %impl.elem0: %.130 = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.WithSelf.JJ(%J.facet.a3a) [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.type.25f: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.812) [symbolic] +// CHECK:STDOUT: %J.WithSelf.JJ.830: %J.WithSelf.JJ.type.25f = struct_value () [symbolic] +// CHECK:STDOUT: %.13b: type = fn_type_with_self_type %J.WithSelf.JJ.type.25f, %J.facet.812 [symbolic] +// CHECK:STDOUT: %impl.elem0: %.13b = impl_witness_access %J.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @J.WithSelf.JJ(%J.facet.812) [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -161,8 +161,8 @@ fn G() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.840 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bd7) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bd7) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.727) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.727) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc22_12.1: type = splice_block %.loc22_12.3 [concrete = constants.%facet_type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -175,13 +175,13 @@ fn G() { // CHECK:STDOUT: %.loc22_12.3: type = converted %type.as.BitAndWith.impl.Op.call, %.loc22_12.2 [concrete = constants.%facet_type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc22_7.2: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc22_7.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc22_20.1: type = splice_block %.loc22_20.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc22_20.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc22_20.1: type = splice_block %.loc22_20.2 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc22: %facet_type = name_ref T, %T.loc22_7.2 [symbolic = %T.loc22_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc22_20.2: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc22_20.2: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc22_20.2: type = converted %T.ref.loc22, %T.as_type.loc22_20.2 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc22_20.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: %G.decl: %G.type = fn_decl @G [concrete = constants.%G] {} {} // CHECK:STDOUT: } @@ -192,16 +192,16 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.II.decl: @I.WithSelf.%I.WithSelf.II.type (%I.WithSelf.II.type.7d3) = fn_decl @I.WithSelf.II [symbolic = @I.WithSelf.%I.WithSelf.II (constants.%I.WithSelf.II.54d)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.II.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.II.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param0 -// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.a26) = value_param call_param0 +// CHECK:STDOUT: %.loc16_15.1: type = splice_block %.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc16_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc16_15.2: type = converted %Self.ref, %Self.as_type.loc16_15.2 [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.II.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.a26) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.II.decl [concrete = constants.%assoc0.27e] // CHECK:STDOUT: @@ -221,16 +221,16 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %J.WithSelf.JJ.decl: @J.WithSelf.%J.WithSelf.JJ.type (%J.WithSelf.JJ.type.21e) = fn_decl @J.WithSelf.JJ [symbolic = @J.WithSelf.%J.WithSelf.JJ (constants.%J.WithSelf.JJ.473)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.909) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.JJ.%pattern_type (%pattern_type.909) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_param call_param0 -// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] { +// CHECK:STDOUT: %self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.9ea) = value_param call_param0 +// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.9ea)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] +// CHECK:STDOUT: %Self.as_type.loc19_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %.loc19_15.2: type = converted %Self.ref, %Self.as_type.loc19_15.2 [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.9ea)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.JJ.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.9ea) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.JJ.decl [concrete = constants.%assoc0.8f4] // CHECK:STDOUT: @@ -299,68 +299,68 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.II(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %Self.as_type.loc16_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_15.1 [symbolic = %pattern_type (constants.%pattern_type.965)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.II.%Self.binding.as_type (%Self.binding.as_type.d31)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.II.%Self.as_type.loc16_15.1 (%Self.as_type.a26)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.JJ(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.832)] +// CHECK:STDOUT: %Self.as_type.loc19_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_15.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_15.1 [symbolic = %pattern_type (constants.%pattern_type.909)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.JJ.%Self.binding.as_type (%Self.binding.as_type.ed8)); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.JJ.%Self.as_type.loc19_15.1 (%Self.as_type.9ea)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc22_7.2: %facet_type) { // CHECK:STDOUT: %T.loc22_7.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc22_7.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc22_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.bd7)] +// CHECK:STDOUT: %T.as_type.loc22_20.1: type = facet_access_type %T.loc22_7.1 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc22_20.1 [symbolic = %pattern_type (constants.%pattern_type.727)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc22_20.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc22_7.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] -// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.binding.as_type, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.990)] +// CHECK:STDOUT: %I.facet.loc26_18.2: %I.type = facet_value %T.as_type.loc22_20.1, (%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.7fc)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc22_7.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness)] -// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.a3a)] -// CHECK:STDOUT: %J.WithSelf.JJ.type: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.loc26_33.2) [symbolic = %J.WithSelf.JJ.type (constants.%J.WithSelf.JJ.type.b4e)] -// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type %J.WithSelf.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.130)] -// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.130) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %J.facet.loc26_33.2: %J.type = facet_value %T.as_type.loc22_20.1, (%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.812)] +// CHECK:STDOUT: %J.WithSelf.JJ.type: type = fn_type @J.WithSelf.JJ, @J.WithSelf(%J.facet.loc26_33.2) [symbolic = %J.WithSelf.JJ.type (constants.%J.WithSelf.JJ.type.25f)] +// CHECK:STDOUT: %.loc26_69: type = fn_type_with_self_type %J.WithSelf.JJ.type, %J.facet.loc26_33.2 [symbolic = %.loc26_69 (constants.%.13b)] +// CHECK:STDOUT: %impl.elem0.loc26_69.2: @F.%.loc26_69 (%.13b) = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc26_69.2: = specific_impl_function %impl.elem0.loc26_69.2, @J.WithSelf.JJ(%J.facet.loc26_33.2) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc22_20.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc22_20.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %T.ref.loc26: %facet_type = name_ref T, %T.loc22_7.2 [symbolic = %T.loc22_7.1 (constants.%T)] // CHECK:STDOUT: %I.ref.loc26_21: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %I.facet.loc26_18.1: %I.type = facet_value %T.as_type.loc26, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.990)] -// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.990)] +// CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %I.facet.loc26_18.1: %I.type = facet_value %T.as_type.loc26, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.7fc)] +// CHECK:STDOUT: %.loc26_18: %I.type = converted %T.ref.loc26, %I.facet.loc26_18.1 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.7fc)] // CHECK:STDOUT: %.loc26_27: type = type_literal type [concrete = type] -// CHECK:STDOUT: %as_type.loc26_24: type = facet_access_type %.loc26_18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc26_24: type = converted %.loc26_18, %as_type.loc26_24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %as_type.loc26_24: type = facet_access_type %.loc26_18 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_24: type = converted %.loc26_18, %as_type.loc26_24 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_36: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc26_33.1: %J.type = facet_value %.loc26_24, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.a3a)] -// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.a3a)] +// CHECK:STDOUT: %J.facet.loc26_33.1: %J.type = facet_value %.loc26_24, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.812)] +// CHECK:STDOUT: %.loc26_33: %J.type = converted %.loc26_24, %J.facet.loc26_33.1 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.812)] // CHECK:STDOUT: %.loc26_42: type = type_literal type [concrete = type] -// CHECK:STDOUT: %as_type.loc26_39: type = facet_access_type %.loc26_33 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc26_39: type = converted %.loc26_33, %as_type.loc26_39 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %as_type.loc26_39: type = facet_access_type %.loc26_33 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_39: type = converted %.loc26_33, %as_type.loc26_39 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %I.ref.loc26_51: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %I.facet.loc26_48: %I.type = facet_value %.loc26_39, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.990)] -// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.990)] +// CHECK:STDOUT: %I.facet.loc26_48: %I.type = facet_value %.loc26_39, (constants.%I.lookup_impl_witness) [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.7fc)] +// CHECK:STDOUT: %.loc26_48: %I.type = converted %.loc26_39, %I.facet.loc26_48 [symbolic = %I.facet.loc26_18.2 (constants.%I.facet.7fc)] // CHECK:STDOUT: %.loc26_57: type = type_literal type [concrete = type] -// CHECK:STDOUT: %as_type.loc26_54: type = facet_access_type %.loc26_48 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc26_54: type = converted %.loc26_48, %as_type.loc26_54 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %as_type.loc26_54: type = facet_access_type %.loc26_48 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_54: type = converted %.loc26_48, %as_type.loc26_54 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.ref.loc26_66: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %J.facet.loc26_63: %J.type = facet_value %.loc26_54, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.a3a)] -// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.a3a)] -// CHECK:STDOUT: %as_type.loc26_67: type = facet_access_type %.loc26_63 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc26_67: type = converted %.loc26_63, %as_type.loc26_67 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %J.facet.loc26_63: %J.type = facet_value %.loc26_54, (constants.%J.lookup_impl_witness) [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.812)] +// CHECK:STDOUT: %.loc26_63: %J.type = converted %.loc26_54, %J.facet.loc26_63 [symbolic = %J.facet.loc26_33.2 (constants.%J.facet.812)] +// CHECK:STDOUT: %as_type.loc26_67: type = facet_access_type %.loc26_63 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_67: type = converted %.loc26_63, %as_type.loc26_67 [symbolic = %T.as_type.loc22_20.1 (constants.%T.as_type)] // CHECK:STDOUT: %JJ.ref: %J.assoc_type = name_ref JJ, @J.WithSelf.%assoc0 [concrete = constants.%assoc0.8f4] -// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.130) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc26_69.1: @F.%.loc26_69 (%.13b) = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc26_69.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc26_69: = bound_method %t.ref, %impl.elem0.loc26_69.1 -// CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @J.WithSelf.JJ(constants.%J.facet.a3a) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc26_69.1: = specific_impl_function %impl.elem0.loc26_69.1, @J.WithSelf.JJ(constants.%J.facet.812) [symbolic = %specific_impl_fn.loc26_69.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc26_73: = bound_method %t.ref, %specific_impl_fn.loc26_69.1 // CHECK:STDOUT: %J.WithSelf.JJ.call: init %empty_tuple.type = call %bound_method.loc26_73(%t.ref) // CHECK:STDOUT: return @@ -451,8 +451,8 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.II(constants.%Self.ab9) { // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 +// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%Self.as_type.a26 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%Self.8a1) { @@ -464,14 +464,14 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%Self.8a1) { // CHECK:STDOUT: %Self => constants.%Self.8a1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ed8 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.832 +// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%Self.as_type.9ea +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.909 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc22_7.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bd7 +// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.727 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%T) { @@ -488,17 +488,17 @@ fn G() { // CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.2a2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.a3a) { +// CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet.812) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%J.facet.a3a -// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.b4e -// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.b7f +// CHECK:STDOUT: %Self => constants.%J.facet.812 +// CHECK:STDOUT: %J.WithSelf.JJ.type => constants.%J.WithSelf.JJ.type.25f +// CHECK:STDOUT: %J.WithSelf.JJ => constants.%J.WithSelf.JJ.830 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.a3a) { -// CHECK:STDOUT: %Self => constants.%J.facet.a3a -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bd7 +// CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.812) { +// CHECK:STDOUT: %Self => constants.%J.facet.812 +// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.727 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.cbf) { @@ -510,7 +510,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.II(constants.%I.facet.cbf) { // CHECK:STDOUT: %Self => constants.%I.facet.cbf -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -523,7 +523,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.JJ(constants.%J.facet.fc3) { // CHECK:STDOUT: %Self => constants.%J.facet.fc3 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc19_15.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -543,7 +543,7 @@ fn G() { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%facet_value) { // CHECK:STDOUT: %T.loc22_7.1 => constants.%facet_value -// CHECK:STDOUT: %T.binding.as_type => constants.%C +// CHECK:STDOUT: %T.as_type.loc22_20.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.893 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/impl/lookup/generic.carbon b/toolchain/check/testdata/impl/lookup/generic.carbon index 1f1b40c64191..38d7998ca957 100644 --- a/toolchain/check/testdata/impl/lookup/generic.carbon +++ b/toolchain/check/testdata/impl/lookup/generic.carbon @@ -132,8 +132,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d0b: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.c69: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.adc: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HasF.WithSelf.F.faa: %HasF.WithSelf.F.type.adc = struct_value () [symbolic] @@ -212,16 +212,16 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -261,10 +261,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.d0b)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c69)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc8_15.2: type) { @@ -302,8 +302,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0b +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { @@ -329,7 +329,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.31c) { // CHECK:STDOUT: %Self => constants.%HasF.facet.31c -// CHECK:STDOUT: %Self.binding.as_type => constants.%T +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: @@ -362,9 +362,9 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self.f09: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.87c: type = symbolic_binding_type Self, 0, %Self.f09 [symbolic] -// CHECK:STDOUT: %pattern_type.d0b: type = pattern_type %Self.binding.as_type.87c [symbolic] -// CHECK:STDOUT: %.779: Core.Form = init_form %Self.binding.as_type.87c [symbolic] +// CHECK:STDOUT: %Self.as_type.036: type = facet_access_type %Self.f09 [symbolic] +// CHECK:STDOUT: %pattern_type.c69: type = pattern_type %Self.as_type.036 [symbolic] +// CHECK:STDOUT: %.b4b: Core.Form = init_form %Self.as_type.036 [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.adc: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.f09) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.faa: %HasF.WithSelf.F.type.adc = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -478,24 +478,24 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = return_slot_pattern %return.param_patt, %.loc5_25.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = return_slot_pattern %return.param_patt, %.loc5_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc5_25: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.f09)] -// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] -// CHECK:STDOUT: %.loc5_25.2: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] -// CHECK:STDOUT: %.loc5_25.3: Core.Form = init_form %.loc5_25.2 [symbolic = %.loc5_25.1 (constants.%.779)] -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] { +// CHECK:STDOUT: %Self.as_type.loc5_25: type = facet_access_type %Self.ref.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] +// CHECK:STDOUT: %.loc5_25.2: type = converted %Self.ref.loc5_25, %Self.as_type.loc5_25 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] +// CHECK:STDOUT: %.loc5_25.3: Core.Form = init_form %.loc5_25.2 [symbolic = %.loc5_25.1 (constants.%.b4b)] +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] { // CHECK:STDOUT: %Self.ref.loc5_14: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self.f09)] -// CHECK:STDOUT: %Self.as_type.loc5_14: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref.loc5_14 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref.loc5_14, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c) = out_param call_param1 -// CHECK:STDOUT: %return: ref @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c) = return_slot %return.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036) = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036) = out_param call_param1 +// CHECK:STDOUT: %return: ref @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0.a7f] // CHECK:STDOUT: @@ -544,11 +544,11 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f09)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87c)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.d0b)] -// CHECK:STDOUT: %.loc5_25.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc5_25.1 (constants.%.779)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.036)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c69)] +// CHECK:STDOUT: %.loc5_25.1: Core.Form = init_form %Self.as_type.loc5_14.1 [symbolic = %.loc5_25.1 (constants.%.b4b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c)) -> out %return.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87c); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036)) -> out %return.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.036); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @ptr.as.HasF.impl.F(@ptr.as.HasF.impl.%T.loc8_15.2: type) { @@ -601,9 +601,9 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.f09) { // CHECK:STDOUT: %Self => constants.%Self.f09 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.87c -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0b -// CHECK:STDOUT: %.loc5_25.1 => constants.%.779 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.036 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c69 +// CHECK:STDOUT: %.loc5_25.1 => constants.%.b4b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @ptr.as.HasF.impl(constants.%T.67d) { @@ -632,7 +632,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.506) { // CHECK:STDOUT: %Self => constants.%HasF.facet.506 -// CHECK:STDOUT: %Self.binding.as_type => constants.%ptr.e8f +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%ptr.e8f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.4f4 // CHECK:STDOUT: %.loc5_25.1 => constants.%.cb6 // CHECK:STDOUT: } @@ -676,8 +676,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d0b: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.c69: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.adc: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %HasF.WithSelf.F.faa: %HasF.WithSelf.F.type.adc = struct_value () [symbolic] @@ -774,16 +774,16 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.adc) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.faa)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -838,10 +838,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.d0b)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c69)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @C.as.HasF.impl.F(@C.as.HasF.impl.%T.loc10_15.2: type) { @@ -880,8 +880,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0b +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -915,7 +915,7 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet.834) { // CHECK:STDOUT: %Self => constants.%HasF.facet.834 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.5a3 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C.5a3 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3d5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -963,8 +963,8 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.generic: %HasF.type.ee1 = struct_value () [concrete] // CHECK:STDOUT: %HasF.type.8a4: type = facet_type <@HasF, @HasF(%T)> [symbolic] // CHECK:STDOUT: %Self.c1f: %HasF.type.8a4 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1f [symbolic] -// CHECK:STDOUT: %pattern_type.969: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1f [symbolic] +// CHECK:STDOUT: %pattern_type.083: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.246: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.c1f) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.58b: %HasF.WithSelf.F.type.246 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type.196: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] @@ -1061,17 +1061,17 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.246) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.58b)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.083) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.083) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.c1f)] // CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.c1f)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.196) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.b54)] // CHECK:STDOUT: @@ -1116,10 +1116,10 @@ fn G(x: A) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.8a4)] // CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1f)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.969)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.083)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @empty_struct_type.as.HasF.impl.F(@empty_struct_type.as.HasF.impl.%T.loc8_15.2: type) { @@ -1171,8 +1171,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.8a4 // CHECK:STDOUT: %Self => constants.%Self.c1f -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.969 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.083 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @empty_struct_type.as.HasF.impl(constants.%T) { @@ -1203,7 +1203,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.8a4 // CHECK:STDOUT: %Self => constants.%HasF.facet.1a2 -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_struct_type +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_struct_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a96 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1257,8 +1257,8 @@ fn G(x: A) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.d0b: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.c69: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F: %HasF.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -1331,16 +1331,16 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.d0b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.c69) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1381,10 +1381,10 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.d0b)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.c69)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc12_15.2: type, @T.as.HasF.impl.%U.loc12_25.2: type) { @@ -1417,8 +1417,8 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d0b +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c69 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T, constants.%U) { @@ -1447,8 +1447,8 @@ fn G(x: A) { // CHECK:STDOUT: %HasF.generic: %HasF.type.ee1 = struct_value () [concrete] // CHECK:STDOUT: %HasF.type.8a4: type = facet_type <@HasF, @HasF(%T)> [symbolic] // CHECK:STDOUT: %Self.c1f: %HasF.type.8a4 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1f [symbolic] -// CHECK:STDOUT: %pattern_type.969: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1f [symbolic] +// CHECK:STDOUT: %pattern_type.083: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.246: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%T, %Self.c1f) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.58b: %HasF.WithSelf.F.type.246 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type.196: type = assoc_entity_type @HasF, @HasF(%T) [symbolic] @@ -1540,17 +1540,17 @@ fn G(x: A) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.246) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.58b)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.969) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.083) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.083) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.3 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_14.2: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = specific_constant @HasF.%Self.loc4_26.1, @HasF(constants.%T) [symbolic = %Self (constants.%Self.c1f)] // CHECK:STDOUT: %Self.ref: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = name_ref Self, %.loc5_14.2 [symbolic = %Self (constants.%Self.c1f)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.3: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc5_21.1: @HasF.WithSelf.%HasF.assoc_type (%HasF.assoc_type.196) = assoc_entity element0, %HasF.WithSelf.F.decl [symbolic = %assoc0.loc5_21.2 (constants.%assoc0.b54)] // CHECK:STDOUT: @@ -1611,10 +1611,10 @@ fn G(x: A) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF, @HasF(%T)> [symbolic = %HasF.type (constants.%HasF.type.8a4)] // CHECK:STDOUT: %Self: @HasF.WithSelf.F.%HasF.type (%HasF.type.8a4) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1f)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.969)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.083)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @T.as.HasF.impl.F(@T.as.HasF.impl.%T.loc8_15.2: type) { @@ -1664,8 +1664,8 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.8a4 // CHECK:STDOUT: %Self => constants.%Self.c1f -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.969 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.083 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @T.as.HasF.impl(constants.%T) { @@ -1699,7 +1699,7 @@ fn G(x: A) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %HasF.type => constants.%HasF.type.8a4 // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%T +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T // CHECK:STDOUT: %pattern_type => constants.%pattern_type.51d // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/import.carbon b/toolchain/check/testdata/impl/lookup/import.carbon index e82d8dd64c1d..9bf176ef4d95 100644 --- a/toolchain/check/testdata/impl/lookup/import.carbon +++ b/toolchain/check/testdata/impl/lookup/import.carbon @@ -228,8 +228,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasF.type: type = facet_type <@HasF> [concrete] // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.92d: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.46d: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.4d6: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.312: %HasF.WithSelf.F.type.4d6 = struct_value () [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] @@ -274,16 +274,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasF.WithSelf.F.decl: @HasF.WithSelf.%HasF.WithSelf.F.type (%HasF.WithSelf.F.type.4d6) = fn_decl @HasF.WithSelf.F [symbolic = @HasF.WithSelf.%HasF.WithSelf.F (constants.%HasF.WithSelf.F.312)] { -// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.92d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.46d) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasF.WithSelf.F.%pattern_type (%pattern_type.46d) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %HasF.type = name_ref Self, @HasF.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, %HasF.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -322,10 +322,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(@HasF.%Self: %HasF.type) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.92d)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.46d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @HasF.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.HasF.impl.F(%self.param: %C) { @@ -342,8 +342,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.92d +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.46d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { @@ -355,7 +355,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.039 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -364,8 +364,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %HasG.type: type = facet_type <@HasG> [concrete] // CHECK:STDOUT: %Self.26c: %HasG.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.ba6: type = symbolic_binding_type Self, 0, %Self.26c [symbolic] -// CHECK:STDOUT: %pattern_type.348: type = pattern_type %Self.binding.as_type.ba6 [symbolic] +// CHECK:STDOUT: %Self.as_type.6c7: type = facet_access_type %Self.26c [symbolic] +// CHECK:STDOUT: %pattern_type.bb3: type = pattern_type %Self.as_type.6c7 [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.type.0fc: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self.26c) [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.8a1: %HasG.WithSelf.G.type.0fc = struct_value () [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] @@ -385,8 +385,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.656: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.ef3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self.656) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.efb: %HasF.WithSelf.F.type.ef3 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.e84: type = symbolic_binding_type Self, 0, %Self.656 [symbolic] -// CHECK:STDOUT: %pattern_type.6ba: type = pattern_type %Self.binding.as_type.e84 [symbolic] +// CHECK:STDOUT: %Self.as_type.df8: type = facet_access_type %Self.656 [symbolic] +// CHECK:STDOUT: %pattern_type.1f5: type = pattern_type %Self.as_type.df8 [symbolic] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness @D.as.HasF.impl.%HasF.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.189: type = pattern_type %D [concrete] // CHECK:STDOUT: %D.as.HasF.impl.F.type: type = fn_type @D.as.HasF.impl.F [concrete] @@ -455,16 +455,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %HasG.WithSelf.G.decl: @HasG.WithSelf.%HasG.WithSelf.G.type (%HasG.WithSelf.G.type.0fc) = fn_decl @HasG.WithSelf.G [symbolic = @HasG.WithSelf.%HasG.WithSelf.G (constants.%HasG.WithSelf.G.8a1)] { -// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.348) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.bb3) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @HasG.WithSelf.G.%pattern_type (%pattern_type.bb3) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ba6) = value_param call_param0 -// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ba6)] { +// CHECK:STDOUT: %self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.6c7) = value_param call_param0 +// CHECK:STDOUT: %.loc7_14.1: type = splice_block %.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.6c7)] { // CHECK:STDOUT: %Self.ref: %HasG.type = name_ref Self, @HasG.%Self [symbolic = %Self (constants.%Self.26c)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ba6)] -// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ba6)] +// CHECK:STDOUT: %Self.as_type.loc7_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.6c7)] +// CHECK:STDOUT: %.loc7_14.2: type = converted %Self.ref, %Self.as_type.loc7_14.2 [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.6c7)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @HasG.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ba6) = value_binding self, %self.param +// CHECK:STDOUT: %self: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.6c7) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, %HasG.WithSelf.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -553,10 +553,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.WithSelf.G(@HasG.%Self: %HasG.type) { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.26c)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ba6)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.348)] +// CHECK:STDOUT: %Self.as_type.loc7_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_14.1 (constants.%Self.as_type.6c7)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_14.1 [symbolic = %pattern_type (constants.%pattern_type.bb3)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @HasG.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ba6)); +// CHECK:STDOUT: fn(%self.param: @HasG.WithSelf.G.%Self.as_type.loc7_14.1 (%Self.as_type.6c7)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.HasG.impl.G(%self.param: %C) { @@ -566,8 +566,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.d576df.2: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.656)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e84)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.6ba)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.df8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f5)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -591,8 +591,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self.26c) { // CHECK:STDOUT: %Self => constants.%Self.26c -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ba6 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.348 +// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%Self.as_type.6c7 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bb3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet.435) { @@ -604,7 +604,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.435) { // CHECK:STDOUT: %Self => constants.%HasG.facet.435 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8e5 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -617,8 +617,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self.656) { // CHECK:STDOUT: %Self => constants.%Self.656 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.e84 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6ba +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.df8 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { @@ -630,7 +630,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%HasF.facet) { // CHECK:STDOUT: %Self => constants.%HasF.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.189 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -643,7 +643,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%HasG.facet.b67) { // CHECK:STDOUT: %Self => constants.%HasG.facet.b67 -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type.loc7_14.1 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.189 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -661,8 +661,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.ef3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.efb: %HasF.WithSelf.F.type.ef3 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.6ba: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.1f5: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.995 [concrete] // CHECK:STDOUT: %HasF.impl_witness: = impl_witness imports.%HasF.impl_witness_table [concrete] @@ -756,8 +756,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.d576df.2: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.6ba)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f5)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -773,8 +773,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6ba +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { @@ -798,8 +798,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.type.ef3: type = fn_type @HasF.WithSelf.F, @HasF.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasF.WithSelf.F.efb: %HasF.WithSelf.F.type.ef3 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.6ba: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.1f5: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasF.assoc_type: type = assoc_entity_type @HasF [concrete] // CHECK:STDOUT: %assoc0: %HasF.assoc_type = assoc_entity element0, imports.%PackageA.import_ref.995 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -916,8 +916,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasF.WithSelf.F(imports.%PackageA.import_ref.d576df.2: %HasF.type) [from "package_a.carbon"] { // CHECK:STDOUT: %Self: %HasF.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.6ba)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.1f5)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -933,8 +933,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6ba +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.1f5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasF.WithSelf(constants.%HasF.facet) { @@ -958,8 +958,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.type.15f: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.5c1: %HasG.WithSelf.G.type.15f = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.588: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.69c: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.cd5 [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] @@ -1076,8 +1076,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.945b0d.2: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.588)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.69c)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1093,8 +1093,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.588 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.69c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) { @@ -1118,8 +1118,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.type.15f: type = fn_type @HasG.WithSelf.G, @HasG.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %HasG.WithSelf.G.5c1: %HasG.WithSelf.G.type.15f = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.588: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.69c: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %HasG.assoc_type: type = assoc_entity_type @HasG [concrete] // CHECK:STDOUT: %assoc0: %HasG.assoc_type = assoc_entity element0, imports.%PackageB.import_ref.cd5 [concrete] // CHECK:STDOUT: %C: type = class_type @C [concrete] @@ -1231,8 +1231,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @HasG.WithSelf.G(imports.%PackageB.import_ref.945b0d.2: %HasG.type) [from "package_b.carbon"] { // CHECK:STDOUT: %Self: %HasG.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.588)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.69c)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1248,8 +1248,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.588 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.69c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @HasG.WithSelf(constants.%HasG.facet) { @@ -1264,8 +1264,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.336: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.b11: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Z.WithSelf.H.type.2a4: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Z.WithSelf.H.514: %Z.WithSelf.H.type.2a4 = struct_value () [symbolic] @@ -1308,16 +1308,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Z.WithSelf.H.decl: @Z.WithSelf.%Z.WithSelf.H.type (%Z.WithSelf.H.type.2a4) = fn_decl @Z.WithSelf.H [symbolic = @Z.WithSelf.%Z.WithSelf.H (constants.%Z.WithSelf.H.514)] { -// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.336) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Z.WithSelf.H.%pattern_type (%pattern_type.b11) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Z.WithSelf.H.%pattern_type (%pattern_type.b11) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Z.WithSelf.H.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Z.WithSelf.H.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Z.WithSelf.H.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Z.WithSelf.H.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, %Z.WithSelf.H.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1348,10 +1348,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.WithSelf.H(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.336)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.b11)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.H.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Z.WithSelf.H.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.Z.impl.H(%self.param: %empty_tuple.type) { @@ -1368,8 +1368,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.336 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { @@ -1381,7 +1381,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Z.facet) { // CHECK:STDOUT: %Self => constants.%Z.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1396,8 +1396,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Z.WithSelf.H.type.5e9: type = fn_type @Z.WithSelf.H, @Z.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Z.WithSelf.H.6f7: %Z.WithSelf.H.type.5e9 = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.91a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.288: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z [concrete] // CHECK:STDOUT: %assoc0: %Z.assoc_type = assoc_entity element0, imports.%PackageAssociatedInterface.import_ref.13b [concrete] // CHECK:STDOUT: %Z.impl_witness: = impl_witness imports.%Z.impl_witness_table [concrete] @@ -1473,8 +1473,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Z.WithSelf.H(imports.%PackageAssociatedInterface.import_ref.b0a283.2: %Z.type) [from "associated_interface.carbon"] { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.91a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.288)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1490,8 +1490,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.H(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.91a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.288 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Z.facet) { @@ -1517,13 +1517,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.880: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.c5f: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K: %Y.WithSelf.K.type = struct_value () [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.K.decl [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1564,16 +1564,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %Y.WithSelf.K.decl: @Y.WithSelf.%Y.WithSelf.K.type (%Y.WithSelf.K.type) = fn_decl @Y.WithSelf.K [symbolic = @Y.WithSelf.%Y.WithSelf.K (constants.%Y.WithSelf.K)] { -// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.880) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @Y.WithSelf.K.%pattern_type (%pattern_type.c5f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @Y.WithSelf.K.%pattern_type (%pattern_type.c5f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Y.WithSelf.K.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Y.WithSelf.K.%Self.as_type.loc7_21.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc7_21.1: type = splice_block %.loc7_21.2 [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Y.type = name_ref Self, @Y.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc7_21.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_21.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc7_21.2: type = converted %Self.ref, %Self.as_type.loc7_21.2 [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Y.WithSelf.K.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Y.WithSelf.K.%Self.as_type.loc7_21.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, %Y.WithSelf.K.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -1603,13 +1603,13 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.WithSelf.K(@Y.%Self: %Y.type) { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.880)] +// CHECK:STDOUT: %Self.as_type.loc7_21.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_21.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc7_21.1 [symbolic = %pattern_type (constants.%pattern_type.c5f)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc7_21.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Y.WithSelf.K.%Self.binding.as_type (%Self.binding.as_type)) { +// CHECK:STDOUT: fn(%self.param: @Y.WithSelf.K.%Self.as_type.loc7_21.1 (%Self.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -1630,8 +1630,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.880 +// CHECK:STDOUT: %Self.as_type.loc7_21.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c5f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- has_generic_interface.carbon @@ -1659,9 +1659,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.079: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type.1bb: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.079) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.378: %Y.WithSelf.K.type.1bb = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.c23: type = symbolic_binding_type Self, 0, %Self.079 [symbolic] -// CHECK:STDOUT: %pattern_type.420: type = pattern_type %Self.binding.as_type.c23 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.c23 [symbolic] +// CHECK:STDOUT: %Self.as_type.f6c: type = facet_access_type %Self.079 [symbolic] +// CHECK:STDOUT: %pattern_type.e9b: type = pattern_type %Self.as_type.f6c [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.f6c [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.a39: type = pattern_type %AnyParam.33d [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] @@ -1797,11 +1797,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.71dd35.2: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.079)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c23)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.420)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.f6c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e9b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -1878,8 +1878,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.079) { // CHECK:STDOUT: %Self => constants.%Self.079 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c23 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.420 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.f6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { @@ -1891,7 +1891,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%AnyParam.33d +// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.33d // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a39 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1913,7 +1913,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %U: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %GenericInterface.type.b26: type = facet_type <@GenericInterface, @GenericInterface(%U)> [symbolic] // CHECK:STDOUT: %Self.793: %GenericInterface.type.b26 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %pattern_type.a647: type = pattern_type %GenericInterface.type.0da [concrete] +// CHECK:STDOUT: %pattern_type.a64: type = pattern_type %GenericInterface.type.0da [concrete] // CHECK:STDOUT: %AnyParam.861: type = class_type @AnyParam, @AnyParam(%GenericInterface.type.0da, %GenericInterface.generic) [concrete] // CHECK:STDOUT: %pattern_type.3ad: type = pattern_type %AnyParam.861 [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] @@ -1922,9 +1922,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.079: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type.1bb: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.079) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.378: %Y.WithSelf.K.type.1bb = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.c23: type = symbolic_binding_type Self, 0, %Self.079 [symbolic] -// CHECK:STDOUT: %pattern_type.420: type = pattern_type %Self.binding.as_type.c23 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.c23 [symbolic] +// CHECK:STDOUT: %Self.as_type.f6c: type = facet_access_type %Self.079 [symbolic] +// CHECK:STDOUT: %pattern_type.e9b: type = pattern_type %Self.as_type.f6c [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.f6c [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0.633: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.0e4 [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] @@ -2068,11 +2068,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.71dd35.2: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.079)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c23)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.420)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.f6c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e9b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2101,7 +2101,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: specific @AnyParam(constants.%GenericInterface.type.0da, constants.%GenericInterface.generic) { // CHECK:STDOUT: %T => constants.%GenericInterface.type.0da // CHECK:STDOUT: %X => constants.%GenericInterface.generic -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a647 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a64 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } @@ -2115,8 +2115,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.079) { // CHECK:STDOUT: %Self => constants.%Self.079 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c23 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.420 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.f6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { @@ -2150,9 +2150,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.079: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type.1bb: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.079) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.378: %Y.WithSelf.K.type.1bb = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.c23: type = symbolic_binding_type Self, 0, %Self.079 [symbolic] -// CHECK:STDOUT: %pattern_type.420: type = pattern_type %Self.binding.as_type.c23 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.c23 [symbolic] +// CHECK:STDOUT: %Self.as_type.f6c: type = facet_access_type %Self.079 [symbolic] +// CHECK:STDOUT: %pattern_type.e9b: type = pattern_type %Self.as_type.f6c [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.f6c [symbolic] // CHECK:STDOUT: %Y.impl_witness: = impl_witness @AnyParam.as.Y.impl.%Y.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.ff6: type = pattern_type %AnyParam.8e0 [concrete] // CHECK:STDOUT: %AnyParam.as.Y.impl.K.type: type = fn_type @AnyParam.as.Y.impl.K [concrete] @@ -2283,11 +2283,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.71dd35.2: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.079)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c23)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.420)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.f6c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e9b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2362,8 +2362,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.079) { // CHECK:STDOUT: %Self => constants.%Self.079 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c23 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.420 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.f6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { @@ -2375,7 +2375,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Y.facet) { // CHECK:STDOUT: %Self => constants.%Y.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%AnyParam.8e0 +// CHECK:STDOUT: %Self.as_type => constants.%AnyParam.8e0 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.ff6 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2404,9 +2404,9 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.079: %Y.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.type.1bb: type = fn_type @Y.WithSelf.K, @Y.WithSelf(%Self.079) [symbolic] // CHECK:STDOUT: %Y.WithSelf.K.378: %Y.WithSelf.K.type.1bb = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.c23: type = symbolic_binding_type Self, 0, %Self.079 [symbolic] -// CHECK:STDOUT: %pattern_type.420: type = pattern_type %Self.binding.as_type.c23 [symbolic] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.c23 [symbolic] +// CHECK:STDOUT: %Self.as_type.f6c: type = facet_access_type %Self.079 [symbolic] +// CHECK:STDOUT: %pattern_type.e9b: type = pattern_type %Self.as_type.f6c [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.f6c [symbolic] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y [concrete] // CHECK:STDOUT: %assoc0.633: %Y.assoc_type = assoc_entity element0, imports.%PackageHasParam.import_ref.0e4 [concrete] // CHECK:STDOUT: %Y.impl_witness: = impl_witness imports.%Y.impl_witness_table [concrete] @@ -2548,11 +2548,11 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.WithSelf.K(imports.%PackageHasParam.import_ref.71dd35.2: %Y.type) [from "has_param.carbon"] { // CHECK:STDOUT: %Self: %Y.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.079)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.c23)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.420)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.f6c)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.e9b)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -2593,8 +2593,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf.K(constants.%Self.079) { // CHECK:STDOUT: %Self => constants.%Self.079 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.c23 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.420 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.f6c +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9b // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Y.WithSelf(constants.%Y.facet) { @@ -2634,8 +2634,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.c1b: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c1b [symbolic] -// CHECK:STDOUT: %pattern_type.c3e: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1b [symbolic] +// CHECK:STDOUT: %pattern_type.4af: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.fca: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.c1b) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.6d7: %I.WithSelf.F.type.fca = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -2804,16 +2804,16 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.fca) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.6d7)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.c3e) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.4af) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.4af) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc14_26.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_26.1: type = splice_block %.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc14_26.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc14_26.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc14_26.2: type = converted %Self.ref, %Self.as_type.loc14_26.2 [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc14_26.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -2858,10 +2858,10 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.c3e)] +// CHECK:STDOUT: %Self.as_type.loc14_26.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_26.1 [symbolic = %pattern_type (constants.%pattern_type.4af)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc14_26.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C.806) { @@ -2898,8 +2898,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.c1b) { // CHECK:STDOUT: %Self => constants.%Self.c1b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.c3e +// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4af // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%tuple.type.9c0) { @@ -2917,7 +2917,7 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.806 +// CHECK:STDOUT: %Self.as_type.loc14_26.1 => constants.%C.806 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.e9e // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2937,8 +2937,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: %Self.d36: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.d36) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.d36 [symbolic] -// CHECK:STDOUT: %pattern_type.327: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.d36 [symbolic] +// CHECK:STDOUT: %pattern_type.613: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, imports.%HasExtraInterfaces.import_ref.6b6 [concrete] // CHECK:STDOUT: %Extra8.type: type = facet_type <@Extra8> [concrete] @@ -3119,8 +3119,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%HasExtraInterfaces.import_ref.1d0862.2: %I.type) [from "has_extra_interfaces.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.d36)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.327)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.613)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -3144,8 +3144,8 @@ fn Test(c: HasExtraInterfaces.C(type)) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.d36) { // CHECK:STDOUT: %Self => constants.%Self.d36 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.327 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.613 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Extra8.WithSelf(constants.%Self.930) {} diff --git a/toolchain/check/testdata/impl/lookup/instance_method.carbon b/toolchain/check/testdata/impl/lookup/instance_method.carbon index 273d6eba7a0b..1fee5965ead4 100644 --- a/toolchain/check/testdata/impl/lookup/instance_method.carbon +++ b/toolchain/check/testdata/impl/lookup/instance_method.carbon @@ -34,8 +34,8 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -106,20 +106,20 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.loc18_25: Core.Form = init_form %i32 [concrete = constants.%.ff5] -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc18_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc18_14.1: type = splice_block %.loc18_14.2 [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc18_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc18_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc18_14.2: type = converted %Self.ref, %Self.as_type.loc18_14.2 [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc18_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -173,10 +173,10 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %Self.as_type.loc18_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_14.1 [symbolic = %pattern_type (constants.%pattern_type.965)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: %i32; +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_14.1 (%Self.as_type)) -> out %return.param: %i32; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.I.impl.F(%self.param: %C) -> out %return.param: %i32; @@ -200,8 +200,8 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 +// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -213,7 +213,7 @@ fn F(c: C) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc18_14.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon index 2a81cce364a3..ee8c9bdb33c1 100644 --- a/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon +++ b/toolchain/check/testdata/impl/lookup/lookup_interface_with_enclosing_generic_inside_rewrite_constraint.carbon @@ -117,7 +117,7 @@ fn F() { // CHECK:STDOUT: %assoc0.049: %Y.assoc_type.978 = assoc_entity element0, @Y.WithSelf.%T [symbolic] // CHECK:STDOUT: %.Self.cf7: %Y.type.6b3 = symbolic_binding .Self [symbolic] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type.6b3 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.b3c: type = symbolic_binding_type .Self, %.Self.cf7 [symbolic] +// CHECK:STDOUT: %.Self.as_type.f1c: type = facet_access_type %.Self.cf7 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.3b9: = lookup_impl_witness %.Self.cf7, @Y, @Y(%OuterParam) [symbolic] // CHECK:STDOUT: %impl.elem0.284: type = impl_witness_access %Y.lookup_impl_witness.3b9, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -137,7 +137,7 @@ fn F() { // CHECK:STDOUT: %Self.95d: %Y.type.5e1 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Y.assoc_type.4bc: type = assoc_entity_type @Y, @Y(%empty_tuple.type) [concrete] // CHECK:STDOUT: %assoc0.7fe: %Y.assoc_type.4bc = assoc_entity element0, @Y.WithSelf.%T [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.32f: type = symbolic_binding_type .Self, %.Self.f22 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.a86: type = facet_access_type %.Self.f22 [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness.b08: = lookup_impl_witness %.Self.f22, @Y, @Y(%empty_tuple.type) [symbolic_self] // CHECK:STDOUT: %impl.elem0.48b: type = impl_witness_access %Y.lookup_impl_witness.b08, element0 [symbolic_self] // CHECK:STDOUT: %Y_where.type.ad5: type = facet_type <@Y, @Y(%empty_tuple.type) where %impl.elem0.48b = %empty_tuple.type> [concrete] @@ -186,8 +186,8 @@ fn F() { // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc58_20 [concrete = constants.%Y.type.5e1] // CHECK:STDOUT: %.Self: %Y.type.5e1 = symbolic_binding .Self [symbolic_self = constants.%.Self.f22] // CHECK:STDOUT: %.Self.ref: %Y.type.5e1 = name_ref .Self, %.Self [symbolic_self = constants.%.Self.f22] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.32f] -// CHECK:STDOUT: %.loc58_29.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.32f] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.a86] +// CHECK:STDOUT: %.loc58_29.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.a86] // CHECK:STDOUT: %.loc58_29.2: %Y.assoc_type.4bc = specific_constant @T.%assoc0, @Y.WithSelf(constants.%empty_tuple.type, constants.%.Self.f22) [concrete = constants.%assoc0.7fe] // CHECK:STDOUT: %T.ref: %Y.assoc_type.4bc = name_ref T, %.loc58_29.2 [concrete = constants.%assoc0.7fe] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness.b08, element0 [symbolic_self = constants.%impl.elem0.48b] @@ -253,8 +253,8 @@ fn F() { // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc54_19 [symbolic = %Y.type (constants.%Y.type.6b3)] // CHECK:STDOUT: %.Self.3: @Outer.G.%Y.type (%Y.type.6b3) = symbolic_binding .Self [symbolic = %.Self.1 (constants.%.Self.cf7)] // CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.6b3) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.cf7)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b3c)] -// CHECK:STDOUT: %.loc54_27.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b3c)] +// CHECK:STDOUT: %.Self.as_type.loc54_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.f1c)] +// CHECK:STDOUT: %.loc54_27.1: type = converted %.Self.ref, %.Self.as_type.loc54_27.2 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.f1c)] // CHECK:STDOUT: %.loc54_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.978) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.cf7) [symbolic = %assoc0 (constants.%assoc0.049)] // CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.978) = name_ref T, %.loc54_27.2 [symbolic = %assoc0 (constants.%assoc0.049)] // CHECK:STDOUT: %impl.elem0.loc54_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.3b9, element0 [symbolic = %impl.elem0.loc54_27.1 (constants.%impl.elem0.284)] @@ -284,7 +284,7 @@ fn F() { // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6b3)] // CHECK:STDOUT: %.Self.1: @Outer.G.%Y.type (%Y.type.6b3) = symbolic_binding .Self [symbolic = %.Self.1 (constants.%.Self.cf7)] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b3c)] +// CHECK:STDOUT: %.Self.as_type.loc54_27.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc54_27.1 (constants.%.Self.as_type.f1c)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.978)] // CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.978) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.049)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.3b9)] @@ -352,7 +352,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.6b3 // CHECK:STDOUT: %.Self.1 => constants.%.Self.cf7 // CHECK:STDOUT: %require_complete => constants.%require_complete -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.b3c +// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.f1c // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.978 // CHECK:STDOUT: %assoc0 => constants.%assoc0.049 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.3b9 @@ -404,7 +404,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.5e1 // CHECK:STDOUT: %.Self.1 => constants.%.Self.f22 // CHECK:STDOUT: %require_complete => constants.%complete_type.ed2 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.32f +// CHECK:STDOUT: %.Self.as_type.loc54_27.1 => constants.%.Self.as_type.a86 // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.4bc // CHECK:STDOUT: %assoc0 => constants.%assoc0.7fe // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.b08 @@ -437,7 +437,7 @@ fn F() { // CHECK:STDOUT: %assoc0.43a: %Y.assoc_type.aab = assoc_entity element0, @Y.WithSelf.%T [symbolic] // CHECK:STDOUT: %.Self.997: %Y.type.6ae = symbolic_binding .Self [symbolic] // CHECK:STDOUT: %require_complete.f45: = require_complete_type %Y.type.6ae [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.238: type = symbolic_binding_type .Self, %.Self.997 [symbolic] +// CHECK:STDOUT: %.Self.as_type.4fd: type = facet_access_type %.Self.997 [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness.5bf: = lookup_impl_witness %.Self.997, @Y, @Y(%OuterParam) [symbolic] // CHECK:STDOUT: %impl.elem0.63e: type = impl_witness_access %Y.lookup_impl_witness.5bf, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -483,7 +483,7 @@ fn F() { // CHECK:STDOUT: %Y.assoc_type.748: type = assoc_entity_type @Y, @Y(%Z1.facet) [concrete] // CHECK:STDOUT: %assoc0.5a7: %Y.assoc_type.748 = assoc_entity element0, @Y.WithSelf.%T [concrete] // CHECK:STDOUT: %complete_type.f55: = complete_type_witness %Y.type.874 [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.d52: type = symbolic_binding_type .Self, %.Self.178 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.f8f: type = facet_access_type %.Self.178 [symbolic_self] // CHECK:STDOUT: %Y.impl_witness.004: = impl_witness @C.as.Y.impl.%Y.impl_witness_table, @C.as.Y.impl(%Z1.facet) [concrete] // CHECK:STDOUT: %complete_type.fa4: = complete_type_witness %Y_where.type.c95 [concrete] // CHECK:STDOUT: %facet_value.256: %Y_where.type.c95 = facet_value %C.af8, (%Y.impl_witness.004) [concrete] @@ -587,7 +587,7 @@ fn F() { // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6ae)] // CHECK:STDOUT: %.Self.2: @C.as.Y.impl.%Y.type (%Y.type.6ae) = symbolic_binding .Self [symbolic = %.Self.2 (constants.%.Self.997)] // CHECK:STDOUT: %require_complete.loc14_21: = require_complete_type %Y.type [symbolic = %require_complete.loc14_21 (constants.%require_complete.f45)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] +// CHECK:STDOUT: %.Self.as_type.loc14_21.2: type = facet_access_type %.Self.2 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.4fd)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.aab)] // CHECK:STDOUT: %assoc0: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.aab) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.2, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.5bf)] @@ -644,8 +644,8 @@ fn F() { // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc11_19 [symbolic = %Y.type (constants.%Y.type.6ae)] // CHECK:STDOUT: %.Self.3: @Outer.G.%Y.type (%Y.type.6ae) = symbolic_binding .Self [symbolic = %.Self.1 (constants.%.Self.997)] // CHECK:STDOUT: %.Self.ref: @Outer.G.%Y.type (%Y.type.6ae) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.997)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] -// CHECK:STDOUT: %.loc11_27.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] +// CHECK:STDOUT: %.Self.as_type.loc11_27.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.4fd)] +// CHECK:STDOUT: %.loc11_27.1: type = converted %.Self.ref, %.Self.as_type.loc11_27.2 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.4fd)] // CHECK:STDOUT: %.loc11_27.2: @Outer.G.%Y.assoc_type (%Y.assoc_type.aab) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.997) [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %T.ref: @Outer.G.%Y.assoc_type (%Y.assoc_type.aab) = name_ref T, %.loc11_27.2 [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %impl.elem0.loc11_27.2: type = impl_witness_access constants.%Y.lookup_impl_witness.5bf, element0 [symbolic = %impl.elem0.loc11_27.1 (constants.%impl.elem0.63e)] @@ -666,8 +666,8 @@ fn F() { // CHECK:STDOUT: %Y.ref: type = name_ref Y, %.loc14_13 [symbolic = %Y.type (constants.%Y.type.6ae)] // CHECK:STDOUT: %.Self.1: @C.as.Y.impl.%Y.type (%Y.type.6ae) = symbolic_binding .Self [symbolic = %.Self.2 (constants.%.Self.997)] // CHECK:STDOUT: %.Self.ref: @C.as.Y.impl.%Y.type (%Y.type.6ae) = name_ref .Self, %.Self.1 [symbolic = %.Self.2 (constants.%.Self.997)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] -// CHECK:STDOUT: %.loc14_21.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] +// CHECK:STDOUT: %.Self.as_type.loc14_21.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.4fd)] +// CHECK:STDOUT: %.loc14_21.1: type = converted %.Self.ref, %.Self.as_type.loc14_21.1 [symbolic = %.Self.as_type.loc14_21.2 (constants.%.Self.as_type.4fd)] // CHECK:STDOUT: %.loc14_21.2: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.aab) = specific_constant @T.%assoc0, @Y.WithSelf(constants.%OuterParam, constants.%.Self.997) [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %T.ref: @C.as.Y.impl.%Y.assoc_type (%Y.assoc_type.aab) = name_ref T, %.loc14_21.2 [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %impl.elem0.loc14_21.1: type = impl_witness_access constants.%Y.lookup_impl_witness.5bf, element0 [symbolic = %impl.elem0.loc14_21.2 (constants.%impl.elem0.63e)] @@ -698,7 +698,7 @@ fn F() { // CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(%OuterParam)> [symbolic = %Y.type (constants.%Y.type.6ae)] // CHECK:STDOUT: %.Self.1: @Outer.G.%Y.type (%Y.type.6ae) = symbolic_binding .Self [symbolic = %.Self.1 (constants.%.Self.997)] // CHECK:STDOUT: %require_complete: = require_complete_type %Y.type [symbolic = %require_complete (constants.%require_complete.f45)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.238)] +// CHECK:STDOUT: %.Self.as_type.loc11_27.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc11_27.1 (constants.%.Self.as_type.4fd)] // CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%OuterParam) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.aab)] // CHECK:STDOUT: %assoc0: @Outer.G.%Y.assoc_type (%Y.assoc_type.aab) = assoc_entity element0, @Y.WithSelf.%T [symbolic = %assoc0 (constants.%assoc0.43a)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Y, @Y(%OuterParam) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness.5bf)] @@ -802,7 +802,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.6ae // CHECK:STDOUT: %.Self.1 => constants.%.Self.997 // CHECK:STDOUT: %require_complete => constants.%require_complete.f45 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.238 +// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.4fd // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.aab // CHECK:STDOUT: %assoc0 => constants.%assoc0.43a // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.5bf @@ -820,7 +820,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.6ae // CHECK:STDOUT: %.Self.2 => constants.%.Self.997 // CHECK:STDOUT: %require_complete.loc14_21 => constants.%require_complete.f45 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.238 +// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.4fd // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.aab // CHECK:STDOUT: %assoc0 => constants.%assoc0.43a // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.5bf @@ -869,7 +869,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.874 // CHECK:STDOUT: %.Self.2 => constants.%.Self.178 // CHECK:STDOUT: %require_complete.loc14_21 => constants.%complete_type.f55 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.d52 +// CHECK:STDOUT: %.Self.as_type.loc14_21.2 => constants.%.Self.as_type.f8f // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.748 // CHECK:STDOUT: %assoc0 => constants.%assoc0.5a7 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.249 @@ -893,7 +893,7 @@ fn F() { // CHECK:STDOUT: %Y.type => constants.%Y.type.874 // CHECK:STDOUT: %.Self.1 => constants.%.Self.178 // CHECK:STDOUT: %require_complete => constants.%complete_type.f55 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.d52 +// CHECK:STDOUT: %.Self.as_type.loc11_27.1 => constants.%.Self.as_type.f8f // CHECK:STDOUT: %Y.assoc_type => constants.%Y.assoc_type.748 // CHECK:STDOUT: %assoc0 => constants.%assoc0.5a7 // CHECK:STDOUT: %Y.lookup_impl_witness => constants.%Y.lookup_impl_witness.249 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 3cd3b6f59bf9..3eab8c54b751 100644 --- a/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon +++ b/toolchain/check/testdata/impl/lookup/specialization_with_symbolic_rewrite.carbon @@ -118,7 +118,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.assoc_type.5b2: type = assoc_entity_type @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %assoc0.8bc: %Z.assoc_type.5b2 = assoc_entity element0, @Z.WithSelf.%X [symbolic] // CHECK:STDOUT: %require_complete.72d: = require_complete_type %Z.type.4d0 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.097: type = symbolic_binding_type .Self, %.Self.90f [symbolic] +// CHECK:STDOUT: %.Self.as_type.faa: type = facet_access_type %.Self.90f [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.7d6: = lookup_impl_witness %.Self.90f, @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %impl.elem0.e5e: type = impl_witness_access %Z.lookup_impl_witness.7d6, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -131,7 +131,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Self.af9: %Z.type.be4 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Z.assoc_type.553: type = assoc_entity_type @Z, @Z(%C) [concrete] // CHECK:STDOUT: %assoc0.1e0: %Z.assoc_type.553 = assoc_entity element0, @Z.WithSelf.%X [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.8c6: type = symbolic_binding_type .Self, %.Self.bf2 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.acb: type = facet_access_type %.Self.bf2 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.c06: = lookup_impl_witness %.Self.bf2, @Z, @Z(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0.2cd: type = impl_witness_access %Z.lookup_impl_witness.c06, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.c3e: type = facet_type <@Z, @Z(%C) where %impl.elem0.2cd = %T.67d> [symbolic] @@ -140,15 +140,15 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.facet.738: %Z.type.be4 = facet_value %T.67d, (%Z.impl_witness.9b0) [symbolic] // CHECK:STDOUT: %pattern_type.53f: type = pattern_type %Z.type.be4 [concrete] // CHECK:STDOUT: %T.fe5: %Z.type.be4 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.fe5 [symbolic] -// CHECK:STDOUT: %pattern_type.bb9: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.fe5 [symbolic] +// CHECK:STDOUT: %pattern_type.177: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.f3b: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Z_where.type.325: type = facet_type <@Z, @Z(%C) where %impl.elem0.2cd = %T.binding.as_type> [symbolic] -// CHECK:STDOUT: %Z.impl_witness.5a3: = impl_witness @T.as.Z.impl.cf0.%Z.impl_witness_table, @T.as.Z.impl.cf0(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %require_complete.267: = require_complete_type %Z_where.type.325 [symbolic] -// CHECK:STDOUT: %.7b3: require_specific_def_type = require_specific_def @T.as.Z.impl.cf0(%T.binding.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.7c5: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %Z_where.type.238: type = facet_type <@Z, @Z(%C) where %impl.elem0.2cd = %T.as_type> [symbolic] +// CHECK:STDOUT: %Z.impl_witness.4c9: = impl_witness @T.as.Z.impl.cf0.%Z.impl_witness_table, @T.as.Z.impl.cf0(%T.as_type) [symbolic] +// CHECK:STDOUT: %require_complete.d03: = require_complete_type %Z_where.type.238 [symbolic] +// CHECK:STDOUT: %.75b: require_specific_def_type = require_specific_def @T.as.Z.impl.cf0(%T.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -186,8 +186,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc9_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.4d0)] // CHECK:STDOUT: %.Self.1: @T.as.Z.impl.34a.%Z.type.loc9_42.2 (%Z.type.4d0) = symbolic_binding .Self [symbolic = %.Self.4 (constants.%.Self.90f)] // CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.34a.%Z.type.loc9_42.2 (%Z.type.4d0) = name_ref .Self, %.Self.1 [symbolic = %.Self.4 (constants.%.Self.90f)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] -// CHECK:STDOUT: %.loc9_50.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] +// CHECK:STDOUT: %.Self.as_type.loc9_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.faa)] +// CHECK:STDOUT: %.loc9_50.1: type = converted %.Self.ref, %.Self.as_type.loc9_50.1 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.faa)] // CHECK:STDOUT: %.loc9_50.2: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.90f) [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %X.ref: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = name_ref X, %.loc9_50.2 [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %impl.elem0.loc9_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.7d6, element0 [symbolic = %impl.elem0.loc9_50.2 (constants.%impl.elem0.e5e)] @@ -217,8 +217,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.be4] // CHECK:STDOUT: %.Self.1: %Z.type.be4 = symbolic_binding .Self [symbolic_self = constants.%.Self.bf2] // CHECK:STDOUT: %.Self.ref: %Z.type.be4 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.bf2] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.8c6] -// CHECK:STDOUT: %.loc11_46.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.8c6] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.acb] +// CHECK:STDOUT: %.loc11_46.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.acb] // CHECK:STDOUT: %.loc11_46.2: %Z.assoc_type.553 = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.bf2) [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %X.ref: %Z.assoc_type.553 = name_ref X, %.loc11_46.2 [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.c06, element0 [symbolic_self = constants.%impl.elem0.2cd] @@ -235,8 +235,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.53f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.bb9) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.bb9) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type (%pattern_type.177) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type (%pattern_type.177) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc13_13: type = splice_block %Z.type [concrete = constants.%Z.type.be4] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -245,13 +245,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.be4] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc13_7.2: %Z.type.be4 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %t.param: @F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc13_19.1: type = splice_block %.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc13: %Z.type.be4 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type %T.ref.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_19.2: type = converted %T.ref.loc13, %T.as_type.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc13_19.2: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_19.2: type = converted %T.ref.loc13, %T.as_type.loc13_19.2 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -286,7 +286,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc9_42.2: type = facet_type <@Z, @Z(%S.loc9_25.2)> [symbolic = %Z.type.loc9_42.2 (constants.%Z.type.4d0)] // CHECK:STDOUT: %.Self.4: @T.as.Z.impl.34a.%Z.type.loc9_42.2 (%Z.type.4d0) = symbolic_binding .Self [symbolic = %.Self.4 (constants.%.Self.90f)] // CHECK:STDOUT: %require_complete.loc9_50: = require_complete_type %Z.type.loc9_42.2 [symbolic = %require_complete.loc9_50 (constants.%require_complete.72d)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.4 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] +// CHECK:STDOUT: %.Self.as_type.loc9_50.2: type = facet_access_type %.Self.4 [symbolic = %.Self.as_type.loc9_50.2 (constants.%.Self.as_type.faa)] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc9_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.5b2)] // CHECK:STDOUT: %assoc0: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.4, @Z, @Z(%S.loc9_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.7d6)] @@ -335,28 +335,28 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type.be4) { // CHECK:STDOUT: %T.loc13_7.1: %Z.type.be4 = symbolic_binding T, 0 [symbolic = %T.loc13_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc13_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.bb9)] +// CHECK:STDOUT: %T.as_type.loc13_19.1: type = facet_access_type %T.loc13_7.1 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc13_19.1 [symbolic = %pattern_type (constants.%pattern_type.177)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.f3b)] -// CHECK:STDOUT: %.loc15_18.4: require_specific_def_type = require_specific_def @T.as.Z.impl.cf0(%T.binding.as_type) [symbolic = %.loc15_18.4 (constants.%.7b3)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc13_19.1 [symbolic = %require_complete (constants.%require_complete.7c5)] +// CHECK:STDOUT: %.loc15_18.4: require_specific_def_type = require_specific_def @T.as.Z.impl.cf0(%T.as_type.loc13_19.1) [symbolic = %.loc15_18.4 (constants.%.75b)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.bb9) = value_binding_pattern a [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.177) = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc15_18.1: type = splice_block %impl.elem0 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_19.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %.loc15_18.1: type = splice_block %impl.elem0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc15: %Z.type.be4 = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_18.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_18.2: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc15_18.3: %Z.assoc_type.553 = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.fe5) [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %X.ref: %Z.assoc_type.553 = name_ref X, %.loc15_18.3 [concrete = constants.%assoc0.1e0] -// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.5a3, element0 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.impl_witness.4c9, element0 [symbolic = %T.as_type.loc13_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%T.binding.as_type (%T.binding.as_type) = value_binding a, %t.ref +// CHECK:STDOUT: %a: @F.%T.as_type.loc13_19.1 (%T.as_type) = value_binding a, %t.ref // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -395,7 +395,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc9_42.2 => constants.%Z.type.4d0 // CHECK:STDOUT: %.Self.4 => constants.%.Self.90f // CHECK:STDOUT: %require_complete.loc9_50 => constants.%require_complete.72d -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.097 +// CHECK:STDOUT: %.Self.as_type.loc9_50.2 => constants.%.Self.as_type.faa // CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.5b2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.8bc // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.7d6 @@ -448,8 +448,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.fe5) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%T.fe5 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.bb9 +// CHECK:STDOUT: %T.as_type.loc13_19.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.177 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.fe5) { @@ -459,13 +459,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %assoc0 => constants.%assoc0.1e0 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.as.Z.impl.cf0(constants.%T.binding.as_type) { -// CHECK:STDOUT: %T.loc11_21.2 => constants.%T.binding.as_type -// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.325 -// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.5a3 +// CHECK:STDOUT: specific @T.as.Z.impl.cf0(constants.%T.as_type) { +// CHECK:STDOUT: %T.loc11_21.2 => constants.%T.as_type +// CHECK:STDOUT: %Z_where.type => constants.%Z_where.type.238 +// CHECK:STDOUT: %Z.impl_witness.loc11_53.2 => constants.%Z.impl_witness.4c9 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.267 +// CHECK:STDOUT: %require_complete => constants.%require_complete.d03 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_nonfinal_specialized_symbolic_rewrite.carbon @@ -494,7 +494,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.assoc_type.5b2: type = assoc_entity_type @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %assoc0.8bc: %Z.assoc_type.5b2 = assoc_entity element0, @Z.WithSelf.%X [symbolic] // CHECK:STDOUT: %require_complete.72d: = require_complete_type %Z.type.4d0 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.097: type = symbolic_binding_type .Self, %.Self.90f [symbolic] +// CHECK:STDOUT: %.Self.as_type.faa: type = facet_access_type %.Self.90f [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.7d6: = lookup_impl_witness %.Self.90f, @Z, @Z(%S) [symbolic] // CHECK:STDOUT: %impl.elem0.e5e: type = impl_witness_access %Z.lookup_impl_witness.7d6, element0 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -507,7 +507,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Self.af9: %Z.type.be4 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Z.assoc_type.553: type = assoc_entity_type @Z, @Z(%C) [concrete] // CHECK:STDOUT: %assoc0.1e0: %Z.assoc_type.553 = assoc_entity element0, @Z.WithSelf.%X [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.8c6: type = symbolic_binding_type .Self, %.Self.bf2 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.acb: type = facet_access_type %.Self.bf2 [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness.c06: = lookup_impl_witness %.Self.bf2, @Z, @Z(%C) [symbolic_self] // CHECK:STDOUT: %impl.elem0.2cd: type = impl_witness_access %Z.lookup_impl_witness.c06, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.c3e: type = facet_type <@Z, @Z(%C) where %impl.elem0.2cd = %T.67d> [symbolic] @@ -516,11 +516,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.facet.738: %Z.type.be4 = facet_value %T.67d, (%Z.impl_witness.9b0) [symbolic] // CHECK:STDOUT: %pattern_type.53f: type = pattern_type %Z.type.be4 [concrete] // CHECK:STDOUT: %T.fe5: %Z.type.be4 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.fe5 [symbolic] -// CHECK:STDOUT: %pattern_type.bb9: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.fe5 [symbolic] +// CHECK:STDOUT: %pattern_type.177: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.f3b: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.7c5: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness.1cb: = lookup_impl_witness %T.fe5, @Z, @Z(%C) [symbolic] // CHECK:STDOUT: %impl.elem0.a5e: type = impl_witness_access %Z.lookup_impl_witness.1cb, element0 [symbolic] // CHECK:STDOUT: %require_complete.7cf: = require_complete_type %impl.elem0.a5e [symbolic] @@ -582,8 +582,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc10_42.1: type = facet_type <@Z, @Z(constants.%S)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.4d0)] // CHECK:STDOUT: %.Self.1: @T.as.Z.impl.34a.%Z.type.loc10_42.2 (%Z.type.4d0) = symbolic_binding .Self [symbolic = %.Self.4 (constants.%.Self.90f)] // CHECK:STDOUT: %.Self.ref: @T.as.Z.impl.34a.%Z.type.loc10_42.2 (%Z.type.4d0) = name_ref .Self, %.Self.1 [symbolic = %.Self.4 (constants.%.Self.90f)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] -// CHECK:STDOUT: %.loc10_50.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] +// CHECK:STDOUT: %.Self.as_type.loc10_50.1: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.faa)] +// CHECK:STDOUT: %.loc10_50.1: type = converted %.Self.ref, %.Self.as_type.loc10_50.1 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.faa)] // CHECK:STDOUT: %.loc10_50.2: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = specific_constant @X.%assoc0, @Z.WithSelf(constants.%S, constants.%.Self.90f) [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %X.ref: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = name_ref X, %.loc10_50.2 [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %impl.elem0.loc10_50.1: type = impl_witness_access constants.%Z.lookup_impl_witness.7d6, element0 [symbolic = %impl.elem0.loc10_50.2 (constants.%impl.elem0.e5e)] @@ -613,8 +613,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.be4] // CHECK:STDOUT: %.Self.1: %Z.type.be4 = symbolic_binding .Self [symbolic_self = constants.%.Self.bf2] // CHECK:STDOUT: %.Self.ref: %Z.type.be4 = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.bf2] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.8c6] -// CHECK:STDOUT: %.loc12_40.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.8c6] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.acb] +// CHECK:STDOUT: %.loc12_40.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.acb] // CHECK:STDOUT: %.loc12_40.2: %Z.assoc_type.553 = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%.Self.bf2) [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %X.ref: %Z.assoc_type.553 = name_ref X, %.loc12_40.2 [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness.c06, element0 [symbolic_self = constants.%impl.elem0.2cd] @@ -631,8 +631,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.53f = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.bb9) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc14 (%pattern_type.177) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc14 (%pattern_type.177) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_13: type = splice_block %Z.type [concrete = constants.%Z.type.be4] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] @@ -641,13 +641,13 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type: type = facet_type <@Z, @Z(constants.%C)> [concrete = constants.%Z.type.be4] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc14_7.2: %Z.type.be4 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %t.param: @F.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @F.%T.as_type.loc14_19.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_19.1: type = splice_block %.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc14: %Z.type.be4 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc14_19.2: type = converted %T.ref.loc14, %T.as_type.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_19.2: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc14_19.2: type = converted %T.ref.loc14, %T.as_type.loc14_19.2 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @F.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @F.%T.as_type.loc14_19.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -693,7 +693,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc10_42.2: type = facet_type <@Z, @Z(%S.loc10_25.2)> [symbolic = %Z.type.loc10_42.2 (constants.%Z.type.4d0)] // CHECK:STDOUT: %.Self.4: @T.as.Z.impl.34a.%Z.type.loc10_42.2 (%Z.type.4d0) = symbolic_binding .Self [symbolic = %.Self.4 (constants.%.Self.90f)] // CHECK:STDOUT: %require_complete.loc10_50: = require_complete_type %Z.type.loc10_42.2 [symbolic = %require_complete.loc10_50 (constants.%require_complete.72d)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.4 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.097)] +// CHECK:STDOUT: %.Self.as_type.loc10_50.2: type = facet_access_type %.Self.4 [symbolic = %.Self.as_type.loc10_50.2 (constants.%.Self.as_type.faa)] // CHECK:STDOUT: %Z.assoc_type: type = assoc_entity_type @Z, @Z(%S.loc10_25.2) [symbolic = %Z.assoc_type (constants.%Z.assoc_type.5b2)] // CHECK:STDOUT: %assoc0: @T.as.Z.impl.34a.%Z.assoc_type (%Z.assoc_type.5b2) = assoc_entity element0, @Z.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.8bc)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.4, @Z, @Z(%S.loc10_25.2) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.7d6)] @@ -742,11 +742,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc14_7.2: %Z.type.be4) { // CHECK:STDOUT: %T.loc14_7.1: %Z.type.be4 = symbolic_binding T, 0 [symbolic = %T.loc14_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc14_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc14 (constants.%pattern_type.bb9)] +// CHECK:STDOUT: %T.as_type.loc14_19.1: type = facet_access_type %T.loc14_7.1 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc14: type = pattern_type %T.as_type.loc14_19.1 [symbolic = %pattern_type.loc14 (constants.%pattern_type.177)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc14 (constants.%require_complete.f3b)] +// CHECK:STDOUT: %require_complete.loc14: = require_complete_type %T.as_type.loc14_19.1 [symbolic = %require_complete.loc14 (constants.%require_complete.7c5)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc14_7.1, @Z, @Z(constants.%C) [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness.1cb)] // CHECK:STDOUT: %impl.elem0.loc22_18.2: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.a5e)] // CHECK:STDOUT: %require_complete.loc22_18: = require_complete_type %impl.elem0.loc22_18.2 [symbolic = %require_complete.loc22_18 (constants.%require_complete.7cf)] @@ -756,16 +756,16 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %ImplicitAs.assoc_type: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%impl.elem0.loc22_18.2) [symbolic = %ImplicitAs.assoc_type (constants.%ImplicitAs.assoc_type.ac6)] // CHECK:STDOUT: %assoc0: @F.%ImplicitAs.assoc_type (%ImplicitAs.assoc_type.ac6) = assoc_entity element0, imports.%Core.import_ref.201 [symbolic = %assoc0 (constants.%assoc0.ae8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc14_19.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: @F.%pattern_type.loc22 (%pattern_type.7ae) = value_binding_pattern a [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc14_19.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %.loc22_18.1: type = splice_block %impl.elem0.loc22_18.1 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.a5e)] { // CHECK:STDOUT: %T.ref.loc22: %Z.type.be4 = name_ref T, %T.loc14_7.2 [symbolic = %T.loc14_7.1 (constants.%T.fe5)] -// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc14_19.1 (constants.%T.as_type)] // CHECK:STDOUT: %.loc22_18.3: %Z.assoc_type.553 = specific_constant @X.%assoc0, @Z.WithSelf(constants.%C, constants.%T.fe5) [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %X.ref: %Z.assoc_type.553 = name_ref X, %.loc22_18.3 [concrete = constants.%assoc0.1e0] // CHECK:STDOUT: %impl.elem0.loc22_18.1: type = impl_witness_access constants.%Z.lookup_impl_witness.1cb, element0 [symbolic = %impl.elem0.loc22_18.2 (constants.%impl.elem0.a5e)] @@ -815,7 +815,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Z.type.loc10_42.2 => constants.%Z.type.4d0 // CHECK:STDOUT: %.Self.4 => constants.%.Self.90f // CHECK:STDOUT: %require_complete.loc10_50 => constants.%require_complete.72d -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.097 +// CHECK:STDOUT: %.Self.as_type.loc10_50.2 => constants.%.Self.as_type.faa // CHECK:STDOUT: %Z.assoc_type => constants.%Z.assoc_type.5b2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.8bc // CHECK:STDOUT: %Z.lookup_impl_witness => constants.%Z.lookup_impl_witness.7d6 @@ -868,8 +868,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.fe5) { // CHECK:STDOUT: %T.loc14_7.1 => constants.%T.fe5 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.bb9 +// CHECK:STDOUT: %T.as_type.loc14_19.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc14 => constants.%pattern_type.177 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%C, constants.%T.fe5) { @@ -891,7 +891,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %.Self.47a: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.47a [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.47a [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.47a, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.4ac: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] @@ -947,8 +947,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %.Self.1: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.47a] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.47a] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.6bc] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.4ac] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] @@ -1116,7 +1116,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %.Self.47a: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.47a [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.47a [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.47a, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.4ac: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] @@ -1126,27 +1126,27 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.117) [symbolic] // CHECK:STDOUT: %pattern_type.6d2: type = pattern_type %Ptr.type [concrete] // CHECK:STDOUT: %T.ffa: %Ptr.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.3dc: type = symbolic_binding_type T, 0, %T.ffa [symbolic] -// CHECK:STDOUT: %pattern_type.82a: type = pattern_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %ptr.a86: type = ptr_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %Ptr_where.type.540: type = facet_type <@Ptr where %impl.elem0.4ac = %ptr.a86> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.373: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %require_complete.2f9: = require_complete_type %Ptr_where.type.540 [symbolic] -// CHECK:STDOUT: %.0a6: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %.321: Core.Form = init_form %ptr.a86 [symbolic] -// CHECK:STDOUT: %pattern_type.804: type = pattern_type %ptr.a86 [symbolic] +// CHECK:STDOUT: %T.as_type.c3c: type = facet_access_type %T.ffa [symbolic] +// CHECK:STDOUT: %pattern_type.c27: type = pattern_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %ptr.734: type = ptr_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %Ptr_where.type.85e: type = facet_type <@Ptr where %impl.elem0.4ac = %ptr.734> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.9f8: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %require_complete.1ff: = require_complete_type %Ptr_where.type.85e [symbolic] +// CHECK:STDOUT: %.f62: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %.420: Core.Form = init_form %ptr.734 [symbolic] +// CHECK:STDOUT: %pattern_type.1c0: type = pattern_type %ptr.734 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.552: = require_complete_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %require_complete.c1c: = require_complete_type %ptr.a86 [symbolic] +// CHECK:STDOUT: %require_complete.e7f: = require_complete_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %require_complete.06a: = require_complete_type %ptr.734 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.3c7: = lookup_impl_witness %ptr.a86, @Copy [symbolic] -// CHECK:STDOUT: %.54b: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.a86, (%Copy.lookup_impl_witness.3c7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.207: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.382: type = fn_type_with_self_type %Copy.WithSelf.Op.type.207, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.c19: %.382 = impl_witness_access %Copy.lookup_impl_witness.3c7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.25f: = specific_impl_function %impl.elem0.c19, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.48d: = lookup_impl_witness %ptr.734, @Copy [symbolic] +// CHECK:STDOUT: %.592: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.734, (%Copy.lookup_impl_witness.48d) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.bc6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.307: type = fn_type_with_self_type %Copy.WithSelf.Op.type.bc6, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.c24: %.307 = impl_witness_access %Copy.lookup_impl_witness.48d, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.79e: = specific_impl_function %impl.elem0.c24, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1173,8 +1173,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %.Self.1: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.47a] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.47a] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.6bc] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.4ac] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] @@ -1191,31 +1191,31 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.6d2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.82a) = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.82a) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.c27) = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.c27) = var_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.1c0) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.1c0) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] -// CHECK:STDOUT: %.loc9_29.3: type = converted %T.ref.loc9_28, %T.as_type.loc9_29 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] +// CHECK:STDOUT: %T.as_type.loc9_29: type = facet_access_type %T.ref.loc9_28 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] +// CHECK:STDOUT: %.loc9_29.3: type = converted %T.ref.loc9_28, %T.as_type.loc9_29 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.6bc] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.373, element0 [symbolic = %ptr (constants.%ptr.a86)] -// CHECK:STDOUT: %.loc9_29.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.321)] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.9f8, element0 [symbolic = %ptr (constants.%ptr.734)] +// CHECK:STDOUT: %.loc9_29.4: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.420)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] { +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] { // CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %T.as_type.loc9_22: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = ref_binding t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.a86) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.a86) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = ref_binding t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.734) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.734) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1257,33 +1257,33 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Ptr.type) { // CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.82a)] -// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %.loc9_29.1 (constants.%.0a6)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a86)] -// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.321)] -// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.804)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.c27)] +// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.f62)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.734)] +// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.420)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.1c0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.552)] -// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.c1c)] -// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc10_10.1 (constants.%.54b)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3c7)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.e7f)] +// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.06a)] +// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.592)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.48d)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.207)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.382)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.382) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c19)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.25f)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.bc6)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.307)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.307) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c24)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.79e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3dc)) -> out %return.param: @F.%ptr (%ptr.a86) { +// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c)) -> out %return.param: @F.%ptr (%ptr.734) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.a86) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.382) = impl_witness_access constants.%Copy.lookup_impl_witness.3c7, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c19)] +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.734) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.307) = impl_witness_access constants.%Copy.lookup_impl_witness.48d, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c24)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.25f)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.79e)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.a86) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.734) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1311,24 +1311,24 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.binding.as_type.3dc) { -// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.binding.as_type.3dc -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.a86 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.540 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.373 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.c3c) { +// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.c3c +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.734 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.85e +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.9f8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.2f9 +// CHECK:STDOUT: %require_complete => constants.%require_complete.1ff // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.ffa) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.ffa -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3dc -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.82a -// CHECK:STDOUT: %.loc9_29.1 => constants.%.0a6 -// CHECK:STDOUT: %ptr => constants.%ptr.a86 -// CHECK:STDOUT: %.loc9_29.2 => constants.%.321 -// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.804 +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.c3c +// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.c27 +// CHECK:STDOUT: %.loc9_29.1 => constants.%.f62 +// CHECK:STDOUT: %ptr => constants.%ptr.734 +// CHECK:STDOUT: %.loc9_29.2 => constants.%.420 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.1c0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- final_impl_rewrite_of_symbolic_through_facet_value.carbon @@ -1343,7 +1343,7 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %pattern_type.98f: type = pattern_type type [concrete] // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %.Self.47a: %Ptr.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.47a [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.47a [symbolic_self] // CHECK:STDOUT: %Ptr.lookup_impl_witness: = lookup_impl_witness %.Self.47a, @Ptr [symbolic_self] // CHECK:STDOUT: %impl.elem0.4ac: type = impl_witness_access %Ptr.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %ptr.e8f8f9.1: type = ptr_type %U.67d [symbolic] @@ -1353,27 +1353,27 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.facet: %Ptr.type = facet_value %U.67d, (%Ptr.impl_witness.117) [symbolic] // CHECK:STDOUT: %pattern_type.6d2: type = pattern_type %Ptr.type [concrete] // CHECK:STDOUT: %T.ffa: %Ptr.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.3dc: type = symbolic_binding_type T, 0, %T.ffa [symbolic] -// CHECK:STDOUT: %pattern_type.82a: type = pattern_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %ptr.a86: type = ptr_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %Ptr_where.type.540: type = facet_type <@Ptr where %impl.elem0.4ac = %ptr.a86> [symbolic] -// CHECK:STDOUT: %Ptr.impl_witness.373: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %require_complete.2f9: = require_complete_type %Ptr_where.type.540 [symbolic] -// CHECK:STDOUT: %.0a6: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %.321: Core.Form = init_form %ptr.a86 [symbolic] -// CHECK:STDOUT: %pattern_type.804: type = pattern_type %ptr.a86 [symbolic] +// CHECK:STDOUT: %T.as_type.c3c: type = facet_access_type %T.ffa [symbolic] +// CHECK:STDOUT: %pattern_type.c27: type = pattern_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %ptr.734: type = ptr_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %Ptr_where.type.85e: type = facet_type <@Ptr where %impl.elem0.4ac = %ptr.734> [symbolic] +// CHECK:STDOUT: %Ptr.impl_witness.9f8: = impl_witness @U.as.Ptr.impl.%Ptr.impl_witness_table, @U.as.Ptr.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %require_complete.1ff: = require_complete_type %Ptr_where.type.85e [symbolic] +// CHECK:STDOUT: %.f62: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %.420: Core.Form = init_form %ptr.734 [symbolic] +// CHECK:STDOUT: %pattern_type.1c0: type = pattern_type %ptr.734 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.552: = require_complete_type %T.binding.as_type.3dc [symbolic] -// CHECK:STDOUT: %require_complete.c1c: = require_complete_type %ptr.a86 [symbolic] +// CHECK:STDOUT: %require_complete.e7f: = require_complete_type %T.as_type.c3c [symbolic] +// CHECK:STDOUT: %require_complete.06a: = require_complete_type %ptr.734 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %Copy.lookup_impl_witness.3c7: = lookup_impl_witness %ptr.a86, @Copy [symbolic] -// CHECK:STDOUT: %.54b: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type.3dc) [symbolic] -// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.a86, (%Copy.lookup_impl_witness.3c7) [symbolic] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.207: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] -// CHECK:STDOUT: %.382: type = fn_type_with_self_type %Copy.WithSelf.Op.type.207, %Copy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.c19: %.382 = impl_witness_access %Copy.lookup_impl_witness.3c7, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.25f: = specific_impl_function %impl.elem0.c19, @Copy.WithSelf.Op(%Copy.facet) [symbolic] +// CHECK:STDOUT: %Copy.lookup_impl_witness.48d: = lookup_impl_witness %ptr.734, @Copy [symbolic] +// CHECK:STDOUT: %.592: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.c3c) [symbolic] +// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr.734, (%Copy.lookup_impl_witness.48d) [symbolic] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.bc6: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic] +// CHECK:STDOUT: %.307: type = fn_type_with_self_type %Copy.WithSelf.Op.type.bc6, %Copy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.c24: %.307 = impl_witness_access %Copy.lookup_impl_witness.48d, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.79e: = specific_impl_function %impl.elem0.c24, @Copy.WithSelf.Op(%Copy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1400,8 +1400,8 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: %Ptr.ref: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %.Self.1: %Ptr.type = symbolic_binding .Self [symbolic_self = constants.%.Self.47a] // CHECK:STDOUT: %.Self.ref: %Ptr.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.47a] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_45: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.6bc] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Ptr.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.4ac] // CHECK:STDOUT: %U.ref.loc7_53: type = name_ref U, %U.loc7_21.1 [symbolic = %U.loc7_21.2 (constants.%U.67d)] @@ -1418,30 +1418,30 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %T.patt: %pattern_type.6d2 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.82a) = ref_binding_pattern t [concrete] -// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.82a) = var_param_pattern %t.patt [concrete] -// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.804) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] +// CHECK:STDOUT: %t.patt: @F.%pattern_type.loc9_20 (%pattern_type.c27) = ref_binding_pattern t [concrete] +// CHECK:STDOUT: %t.param_patt: @F.%pattern_type.loc9_20 (%pattern_type.c27) = var_param_pattern %t.patt [concrete] +// CHECK:STDOUT: %return.param_patt: @F.%pattern_type.loc9_29 (%pattern_type.1c0) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @F.%pattern_type.loc9_29 (%pattern_type.1c0) = return_slot_pattern %return.param_patt, %impl.elem0.loc9 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc9_28: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] // CHECK:STDOUT: %Ptr.ref.loc9_31: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: %Type.ref: %Ptr.assoc_type = name_ref Type, @Type.%assoc0 [concrete = constants.%assoc0.6bc] -// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.373, element0 [symbolic = %ptr (constants.%ptr.a86)] -// CHECK:STDOUT: %.loc9_29.3: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.321)] +// CHECK:STDOUT: %impl.elem0.loc9: type = impl_witness_access constants.%Ptr.impl_witness.9f8, element0 [symbolic = %ptr (constants.%ptr.734)] +// CHECK:STDOUT: %.loc9_29.3: Core.Form = init_form %impl.elem0.loc9 [symbolic = %.loc9_29.2 (constants.%.420)] // CHECK:STDOUT: %.loc9_10: type = splice_block %Ptr.ref.loc9_10 [concrete = constants.%Ptr.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %Ptr.ref.loc9_10: type = name_ref Ptr, file.%Ptr.decl [concrete = constants.%Ptr.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_7.2: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = ref_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] { +// CHECK:STDOUT: %t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = ref_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] { // CHECK:STDOUT: %T.ref.loc9_22: %Ptr.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] +// CHECK:STDOUT: %T.as_type.loc9_22.2: type = facet_access_type %T.ref.loc9_22 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %T.ref.loc9_22, %T.as_type.loc9_22.2 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = ref_binding t, %t.param -// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.a86) = out_param call_param1 -// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.a86) = return_slot %return.param +// CHECK:STDOUT: %t: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = ref_binding t, %t.param +// CHECK:STDOUT: %return.param: ref @F.%ptr (%ptr.734) = out_param call_param1 +// CHECK:STDOUT: %return: ref @F.%ptr (%ptr.734) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1483,33 +1483,33 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc9_7.2: %Ptr.type) { // CHECK:STDOUT: %T.loc9_7.1: %Ptr.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.ffa)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3dc)] -// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.82a)] -// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.binding.as_type) [symbolic = %.loc9_29.1 (constants.%.0a6)] -// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type [symbolic = %ptr (constants.%ptr.a86)] -// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.321)] -// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.804)] +// CHECK:STDOUT: %T.as_type.loc9_22.1: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc9_22.1 (constants.%T.as_type.c3c)] +// CHECK:STDOUT: %pattern_type.loc9_20: type = pattern_type %T.as_type.loc9_22.1 [symbolic = %pattern_type.loc9_20 (constants.%pattern_type.c27)] +// CHECK:STDOUT: %.loc9_29.1: require_specific_def_type = require_specific_def @U.as.Ptr.impl(%T.as_type.loc9_22.1) [symbolic = %.loc9_29.1 (constants.%.f62)] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.loc9_22.1 [symbolic = %ptr (constants.%ptr.734)] +// CHECK:STDOUT: %.loc9_29.2: Core.Form = init_form %ptr [symbolic = %.loc9_29.2 (constants.%.420)] +// CHECK:STDOUT: %pattern_type.loc9_29: type = pattern_type %ptr [symbolic = %pattern_type.loc9_29 (constants.%pattern_type.1c0)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_15 (constants.%require_complete.552)] -// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.c1c)] -// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.binding.as_type) [symbolic = %.loc10_10.1 (constants.%.54b)] -// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3c7)] +// CHECK:STDOUT: %require_complete.loc9_15: = require_complete_type %T.as_type.loc9_22.1 [symbolic = %require_complete.loc9_15 (constants.%require_complete.e7f)] +// CHECK:STDOUT: %require_complete.loc9_29: = require_complete_type %ptr [symbolic = %require_complete.loc9_29 (constants.%require_complete.06a)] +// CHECK:STDOUT: %.loc10_10.1: require_specific_def_type = require_specific_def @ptr.as.Copy.impl(%T.as_type.loc9_22.1) [symbolic = %.loc10_10.1 (constants.%.592)] +// CHECK:STDOUT: %Copy.lookup_impl_witness: = lookup_impl_witness %ptr, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.48d)] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %ptr, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet)] -// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.207)] -// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.382)] -// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.382) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c19)] -// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.25f)] +// CHECK:STDOUT: %Copy.WithSelf.Op.type: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet) [symbolic = %Copy.WithSelf.Op.type (constants.%Copy.WithSelf.Op.type.bc6)] +// CHECK:STDOUT: %.loc10_10.2: type = fn_type_with_self_type %Copy.WithSelf.Op.type, %Copy.facet [symbolic = %.loc10_10.2 (constants.%.307)] +// CHECK:STDOUT: %impl.elem0.loc10_10.2: @F.%.loc10_10.2 (%.307) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c24)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.2: = specific_impl_function %impl.elem0.loc10_10.2, @Copy.WithSelf.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.79e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: ref @F.%T.binding.as_type (%T.binding.as_type.3dc)) -> out %return.param: @F.%ptr (%ptr.a86) { +// CHECK:STDOUT: fn(%t.param: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c)) -> out %return.param: @F.%ptr (%ptr.734) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: ref @F.%T.binding.as_type (%T.binding.as_type.3dc) = name_ref t, %t -// CHECK:STDOUT: %addr: @F.%ptr (%ptr.a86) = addr_of %t.ref -// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.382) = impl_witness_access constants.%Copy.lookup_impl_witness.3c7, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c19)] +// CHECK:STDOUT: %t.ref: ref @F.%T.as_type.loc9_22.1 (%T.as_type.c3c) = name_ref t, %t +// CHECK:STDOUT: %addr: @F.%ptr (%ptr.734) = addr_of %t.ref +// CHECK:STDOUT: %impl.elem0.loc10_10.1: @F.%.loc10_10.2 (%.307) = impl_witness_access constants.%Copy.lookup_impl_witness.48d, element0 [symbolic = %impl.elem0.loc10_10.2 (constants.%impl.elem0.c24)] // CHECK:STDOUT: %bound_method.loc10_10.1: = bound_method %addr, %impl.elem0.loc10_10.1 -// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.25f)] +// CHECK:STDOUT: %specific_impl_fn.loc10_10.1: = specific_impl_function %impl.elem0.loc10_10.1, @Copy.WithSelf.Op(constants.%Copy.facet) [symbolic = %specific_impl_fn.loc10_10.2 (constants.%specific_impl_fn.79e)] // CHECK:STDOUT: %bound_method.loc10_10.2: = bound_method %addr, %specific_impl_fn.loc10_10.1 -// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.a86) = call %bound_method.loc10_10.2(%addr) +// CHECK:STDOUT: %Copy.WithSelf.Op.call: init @F.%ptr (%ptr.734) = call %bound_method.loc10_10.2(%addr) // CHECK:STDOUT: return %Copy.WithSelf.Op.call // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -1533,14 +1533,14 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.binding.as_type.3dc) { -// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.binding.as_type.3dc -// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.a86 -// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.540 -// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.373 +// CHECK:STDOUT: specific @U.as.Ptr.impl(constants.%T.as_type.c3c) { +// CHECK:STDOUT: %U.loc7_21.2 => constants.%T.as_type.c3c +// CHECK:STDOUT: %ptr.loc7_54.2 => constants.%ptr.734 +// CHECK:STDOUT: %Ptr_where.type => constants.%Ptr_where.type.85e +// CHECK:STDOUT: %Ptr.impl_witness.loc7_56.2 => constants.%Ptr.impl_witness.9f8 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete => constants.%require_complete.2f9 +// CHECK:STDOUT: %require_complete => constants.%require_complete.1ff // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Ptr.WithSelf(constants.%T.ffa) { @@ -1549,11 +1549,11 @@ fn F[T:! Ptr](var t: T) -> T.(Ptr.Type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.ffa) { // CHECK:STDOUT: %T.loc9_7.1 => constants.%T.ffa -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.3dc -// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.82a -// CHECK:STDOUT: %.loc9_29.1 => constants.%.0a6 -// CHECK:STDOUT: %ptr => constants.%ptr.a86 -// CHECK:STDOUT: %.loc9_29.2 => constants.%.321 -// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.804 +// CHECK:STDOUT: %T.as_type.loc9_22.1 => constants.%T.as_type.c3c +// CHECK:STDOUT: %pattern_type.loc9_20 => constants.%pattern_type.c27 +// CHECK:STDOUT: %.loc9_29.1 => constants.%.f62 +// CHECK:STDOUT: %ptr => constants.%ptr.734 +// CHECK:STDOUT: %.loc9_29.2 => constants.%.420 +// CHECK:STDOUT: %pattern_type.loc9_29 => constants.%pattern_type.1c0 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/impl/lookup/specific_args.carbon b/toolchain/check/testdata/impl/lookup/specific_args.carbon index df7845e9bf14..d45e4482c58c 100644 --- a/toolchain/check/testdata/impl/lookup/specific_args.carbon +++ b/toolchain/check/testdata/impl/lookup/specific_args.carbon @@ -66,8 +66,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.generic: %I.type.609 = struct_value () [concrete] // CHECK:STDOUT: %I.type.1ab: type = facet_type <@I, @I(%T)> [symbolic] // CHECK:STDOUT: %Self: %I.type.1ab = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.a8a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f2f: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I, @I(%T) [symbolic] @@ -120,17 +120,17 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.a8a) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.f2f) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.f2f) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc4_36.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_36.1: type = splice_block %.loc4_36.3 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc4_36.2: @I.WithSelf.F.%I.type (%I.type.1ab) = specific_constant @I.%Self.loc4_23.1, @I(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @I.WithSelf.F.%I.type (%I.type.1ab) = name_ref Self, %.loc4_36.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_36.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_36.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_36.3: type = converted %Self.ref, %Self.as_type.loc4_36.2 [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc4_36.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc4_43.1: @I.WithSelf.%I.assoc_type (%I.assoc_type) = assoc_entity element0, %I.WithSelf.F.decl [symbolic = %assoc0.loc4_43.2 (constants.%assoc0)] // CHECK:STDOUT: @@ -169,10 +169,10 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.a8a)] +// CHECK:STDOUT: %Self.as_type.loc4_36.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_36.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_36.1 [symbolic = %pattern_type (constants.%pattern_type.f2f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc4_36.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%T) { @@ -185,8 +185,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a8a +// CHECK:STDOUT: %Self.as_type.loc4_36.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2f // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @C(constants.%T) { @@ -207,8 +207,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.c1b: %I.type.1ab = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.efc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.c1b) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.213: %I.WithSelf.F.type.efc = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1b [symbolic] -// CHECK:STDOUT: %pattern_type.f2c: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1b [symbolic] +// CHECK:STDOUT: %pattern_type.831: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.type.39c: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @X.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %Self.ccd: %I.type.39c = symbolic_binding Self, 1 [symbolic] @@ -309,8 +309,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.f2c)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.831)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -330,8 +330,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: %Self => constants.%Self.c1b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2c +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { @@ -368,7 +368,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%InInterfaceArgs // CHECK:STDOUT: %I.type => constants.%I.type.39c // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%X +// CHECK:STDOUT: %Self.as_type => constants.%X // CHECK:STDOUT: %pattern_type => constants.%pattern_type.05f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -390,8 +390,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.assoc_type.76c: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.efc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.c1b) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.213: %I.WithSelf.F.type.efc = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1b [symbolic] -// CHECK:STDOUT: %pattern_type.f2c: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1b [symbolic] +// CHECK:STDOUT: %pattern_type.831: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %InInterfaceArgs: type = class_type @InInterfaceArgs [concrete] // CHECK:STDOUT: %I.type.39c: type = facet_type <@I, @I(%InInterfaceArgs)> [concrete] // CHECK:STDOUT: %Self.ccd: %I.type.39c = symbolic_binding Self, 1 [symbolic] @@ -506,8 +506,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.f2c)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.831)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -524,8 +524,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: %Self => constants.%Self.c1b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2c +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%InInterfaceArgs) { @@ -574,8 +574,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %Self.c1b: %I.type.1ab = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.efc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.c1b) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.213: %I.WithSelf.F.type.efc = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1b [symbolic] -// CHECK:STDOUT: %pattern_type.f2c: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1b [symbolic] +// CHECK:STDOUT: %pattern_type.831: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %I.type.03e: type = facet_type <@I, @I(%X)> [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] @@ -695,8 +695,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.f2c)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.831)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -726,8 +726,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: %Self => constants.%Self.c1b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2c +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%X) { @@ -764,7 +764,7 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %I.type => constants.%I.type.03e // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C.83f +// CHECK:STDOUT: %Self.as_type => constants.%C.83f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.65d // CHECK:STDOUT: } // CHECK:STDOUT: @@ -789,8 +789,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %I.assoc_type.76c: type = assoc_entity_type @I, @I(%T) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.efc: type = fn_type @I.WithSelf.F, @I.WithSelf(%T, %Self.c1b) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.213: %I.WithSelf.F.type.efc = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.c1b [symbolic] -// CHECK:STDOUT: %pattern_type.f2c: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c1b [symbolic] +// CHECK:STDOUT: %pattern_type.831: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %X: type = class_type @X [concrete] // CHECK:STDOUT: %I.type.03e: type = facet_type <@I, @I(%X)> [concrete] // CHECK:STDOUT: %Self.9c0: %I.type.03e = symbolic_binding Self, 1 [symbolic] @@ -925,8 +925,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %I.type: type = facet_type <@I, @I(%T)> [symbolic = %I.type (constants.%I.type.1ab)] // CHECK:STDOUT: %Self: @I.WithSelf.F.%I.type (%I.type.1ab) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.c1b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.f2c)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.831)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -953,8 +953,8 @@ fn H(c: C(InClassArgs)) { c.(I(X).F)(); } // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %I.type => constants.%I.type.1ab // CHECK:STDOUT: %Self => constants.%Self.c1b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f2c +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.831 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I(constants.%X) { diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index b63ae3cd2b91..f2c0fc10551c 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -52,8 +52,8 @@ fn Call() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -85,13 +85,13 @@ fn Call() { // CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc4_26.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_26.1: type = splice_block %.loc4_26.2 [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_26.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_26.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_26.2: type = converted %Self.ref, %Self.as_type.loc4_26.2 [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc4_26.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -105,17 +105,17 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc4_26.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_26.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_26.1 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc4_26.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc4_26.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -129,8 +129,8 @@ fn Call() { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.a1f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.cc3: %I.WithSelf.F.type.a1f = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.impl_witness: = impl_witness @C.as.I.impl.%I.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete] // CHECK:STDOUT: %C.as.I.impl.F.type: type = fn_type @C.as.I.impl.F [concrete] @@ -203,8 +203,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.2362f8.2: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -223,8 +223,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -236,7 +236,7 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -305,8 +305,8 @@ fn Call() { // CHECK:STDOUT: %Self.651: %I.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.a1f: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.651) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.cc3: %I.WithSelf.F.type.a1f = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.3af: type = symbolic_binding_type Self, 0, %Self.651 [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %Self.binding.as_type.3af [symbolic] +// CHECK:STDOUT: %Self.as_type.066: type = facet_access_type %Self.651 [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %Self.as_type.066 [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.a42: %I.assoc_type = assoc_entity element0, imports.%Main.import_ref.972 [concrete] // CHECK:STDOUT: %I.impl_witness: = impl_witness imports.%I.impl_witness_table [concrete] @@ -398,8 +398,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(imports.%Main.import_ref.2362f8.2: %I.type) [from "i.carbon"] { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.651)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.3af)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.066)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: fn; // CHECK:STDOUT: } @@ -422,8 +422,8 @@ fn Call() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.651) { // CHECK:STDOUT: %Self => constants.%Self.651 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.3af -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.066 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { diff --git a/toolchain/check/testdata/impl/self_in_class.carbon b/toolchain/check/testdata/impl/self_in_class.carbon index b935895f2ec7..3b97be49ae40 100644 --- a/toolchain/check/testdata/impl/self_in_class.carbon +++ b/toolchain/check/testdata/impl/self_in_class.carbon @@ -31,9 +31,9 @@ class A { // CHECK:STDOUT: constants { // CHECK:STDOUT: %DefaultConstructible.type: type = facet_type <@DefaultConstructible> [concrete] // CHECK:STDOUT: %Self: %DefaultConstructible.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %.eaa: Core.Form = init_form %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.b09: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %.136: Core.Form = init_form %Self.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.493: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.type.17e: type = fn_type @DefaultConstructible.WithSelf.Make, @DefaultConstructible.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.cfb: %DefaultConstructible.WithSelf.Make.type.17e = struct_value () [symbolic] // CHECK:STDOUT: %DefaultConstructible.assoc_type: type = assoc_entity_type @DefaultConstructible [concrete] @@ -71,15 +71,15 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %DefaultConstructible.WithSelf.Make.decl: @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make.type (%DefaultConstructible.WithSelf.Make.type.17e) = fn_decl @DefaultConstructible.WithSelf.Make [symbolic = @DefaultConstructible.WithSelf.%DefaultConstructible.WithSelf.Make (constants.%DefaultConstructible.WithSelf.Make.cfb)] { -// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.b09) = return_slot_pattern %return.param_patt, %.loc16_16.2 [concrete] +// CHECK:STDOUT: %return.param_patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.493) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @DefaultConstructible.WithSelf.Make.%pattern_type (%pattern_type.493) = return_slot_pattern %return.param_patt, %.loc16_16.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %DefaultConstructible.type = name_ref Self, @DefaultConstructible.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_16.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_16.3: Core.Form = init_form %.loc16_16.2 [symbolic = %.loc16_16.1 (constants.%.eaa)] -// CHECK:STDOUT: %return.param: ref @DefaultConstructible.WithSelf.Make.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param0 -// CHECK:STDOUT: %return: ref @DefaultConstructible.WithSelf.Make.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %Self.as_type.loc16_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_16.2: type = converted %Self.ref, %Self.as_type.loc16_16.2 [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_16.3: Core.Form = init_form %.loc16_16.2 [symbolic = %.loc16_16.1 (constants.%.136)] +// CHECK:STDOUT: %return.param: ref @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = out_param call_param0 +// CHECK:STDOUT: %return: ref @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %DefaultConstructible.assoc_type = assoc_entity element0, %DefaultConstructible.WithSelf.Make.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -133,11 +133,11 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @DefaultConstructible.WithSelf.Make(@DefaultConstructible.%Self: %DefaultConstructible.type) { // CHECK:STDOUT: %Self: %DefaultConstructible.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_16.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc16_16.1 (constants.%.eaa)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.b09)] +// CHECK:STDOUT: %Self.as_type.loc16_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_16.1: Core.Form = init_form %Self.as_type.loc16_16.1 [symbolic = %.loc16_16.1 (constants.%.136)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_16.1 [symbolic = %pattern_type (constants.%pattern_type.493)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> out %return.param: @DefaultConstructible.WithSelf.Make.%Self.binding.as_type (%Self.binding.as_type); +// CHECK:STDOUT: fn() -> out %return.param: @DefaultConstructible.WithSelf.Make.%Self.as_type.loc16_16.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.DefaultConstructible.impl.Make() -> out %return.param: %C { @@ -157,9 +157,9 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf.Make(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %.loc16_16.1 => constants.%.eaa -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b09 +// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%Self.as_type +// CHECK:STDOUT: %.loc16_16.1 => constants.%.136 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.493 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf(constants.%DefaultConstructible.facet) { @@ -171,7 +171,7 @@ class A { // CHECK:STDOUT: // CHECK:STDOUT: specific @DefaultConstructible.WithSelf.Make(constants.%DefaultConstructible.facet) { // CHECK:STDOUT: %Self => constants.%DefaultConstructible.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_16.1 => constants.%C // CHECK:STDOUT: %.loc16_16.1 => constants.%.a69 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/impl/self_in_signature.carbon b/toolchain/check/testdata/impl/self_in_signature.carbon index 2808abd9a1a8..802e4c6bf394 100644 --- a/toolchain/check/testdata/impl/self_in_signature.carbon +++ b/toolchain/check/testdata/impl/self_in_signature.carbon @@ -45,9 +45,9 @@ impl D as SelfNested { // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [concrete] // CHECK:STDOUT: %Self.f7b: %UseSelf.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.e3d: type = symbolic_binding_type Self, 0, %Self.f7b [symbolic] -// CHECK:STDOUT: %pattern_type.431: type = pattern_type %Self.binding.as_type.e3d [symbolic] -// CHECK:STDOUT: %.85e: Core.Form = init_form %Self.binding.as_type.e3d [symbolic] +// CHECK:STDOUT: %Self.as_type.563: type = facet_access_type %Self.f7b [symbolic] +// CHECK:STDOUT: %pattern_type.a02: type = pattern_type %Self.as_type.563 [symbolic] +// CHECK:STDOUT: %.4e5: Core.Form = init_form %Self.as_type.563 [symbolic] // CHECK:STDOUT: %UseSelf.WithSelf.F.type.ad8: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%Self.f7b) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %UseSelf.WithSelf.F.de0: %UseSelf.WithSelf.F.type.ad8 = struct_value () [symbolic] @@ -78,14 +78,14 @@ impl D as SelfNested { // CHECK:STDOUT: %D.val: %D = struct_value () [concrete] // CHECK:STDOUT: %SelfNested.type: type = facet_type <@SelfNested> [concrete] // CHECK:STDOUT: %Self.aed: %SelfNested.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.07b: type = symbolic_binding_type Self, 0, %Self.aed [symbolic] -// CHECK:STDOUT: %ptr.d99: type = ptr_type %Self.binding.as_type.07b [symbolic] +// CHECK:STDOUT: %Self.as_type.b90: type = facet_access_type %Self.aed [symbolic] +// CHECK:STDOUT: %ptr.ad7: type = ptr_type %Self.as_type.b90 [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] -// CHECK:STDOUT: %struct_type.x.y.b54: type = struct_type {.x: %Self.binding.as_type.07b, .y: %empty_tuple.type} [symbolic] +// CHECK:STDOUT: %struct_type.x.y.1c0: type = struct_type {.x: %Self.as_type.b90, .y: %empty_tuple.type} [symbolic] // CHECK:STDOUT: %tuple.type.24b: type = tuple_type (type, type) [concrete] -// CHECK:STDOUT: %tuple.ceb: %tuple.type.24b = tuple_value (%ptr.d99, %struct_type.x.y.b54) [symbolic] -// CHECK:STDOUT: %tuple.type.cbf: type = tuple_type (%ptr.d99, %struct_type.x.y.b54) [symbolic] -// CHECK:STDOUT: %pattern_type.fb7: type = pattern_type %tuple.type.cbf [symbolic] +// CHECK:STDOUT: %tuple.3de: %tuple.type.24b = tuple_value (%ptr.ad7, %struct_type.x.y.1c0) [symbolic] +// CHECK:STDOUT: %tuple.type.e6d: type = tuple_type (%ptr.ad7, %struct_type.x.y.1c0) [symbolic] +// CHECK:STDOUT: %pattern_type.4b0: type = pattern_type %tuple.type.e6d [symbolic] // CHECK:STDOUT: %SelfNested.WithSelf.F.type.430: type = fn_type @SelfNested.WithSelf.F, @SelfNested.WithSelf(%Self.aed) [symbolic] // CHECK:STDOUT: %SelfNested.WithSelf.F.257: %SelfNested.WithSelf.F.type.430 = struct_value () [symbolic] // CHECK:STDOUT: %SelfNested.assoc_type: type = assoc_entity_type @SelfNested [concrete] @@ -149,33 +149,33 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %UseSelf.WithSelf.F.decl: @UseSelf.WithSelf.%UseSelf.WithSelf.F.type (%UseSelf.WithSelf.F.type.ad8) = fn_decl @UseSelf.WithSelf.F [symbolic = @UseSelf.WithSelf.%UseSelf.WithSelf.F (constants.%UseSelf.WithSelf.F.de0)] { -// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.431) = return_slot_pattern %return.param_patt, %.loc16_32.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type.a02) = return_slot_pattern %return.param_patt, %.loc16_32.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_32: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.f7b)] -// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] -// CHECK:STDOUT: %.loc16_32.2: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] -// CHECK:STDOUT: %.loc16_32.3: Core.Form = init_form %.loc16_32.2 [symbolic = %.loc16_32.1 (constants.%.85e)] -// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] { +// CHECK:STDOUT: %Self.as_type.loc16_32: type = facet_access_type %Self.ref.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] +// CHECK:STDOUT: %.loc16_32.2: type = converted %Self.ref.loc16_32, %Self.as_type.loc16_32 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] +// CHECK:STDOUT: %.loc16_32.3: Core.Form = init_form %.loc16_32.2 [symbolic = %.loc16_32.1 (constants.%.4e5)] +// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.f7b)] -// CHECK:STDOUT: %Self.as_type.loc16_14: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = value_binding self, %self.param -// CHECK:STDOUT: %x.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = value_param call_param1 -// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] { +// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = value_binding self, %self.param +// CHECK:STDOUT: %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = value_param call_param1 +// CHECK:STDOUT: %.loc16_23.1: type = splice_block %.loc16_23.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] { // CHECK:STDOUT: %Self.ref.loc16_23: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self.f7b)] -// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] -// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] +// CHECK:STDOUT: %Self.as_type.loc16_23: type = facet_access_type %Self.ref.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] +// CHECK:STDOUT: %.loc16_23.2: type = converted %Self.ref.loc16_23, %Self.as_type.loc16_23 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = value_binding x, %x.param -// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = out_param call_param2 -// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d) = return_slot %return.param +// CHECK:STDOUT: %x: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = value_binding x, %x.param +// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = out_param call_param2 +// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.WithSelf.F.decl [concrete = constants.%assoc0.44b] // CHECK:STDOUT: @@ -193,25 +193,25 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %SelfNested.WithSelf.F.decl: @SelfNested.WithSelf.%SelfNested.WithSelf.F.type (%SelfNested.WithSelf.F.type.430) = fn_decl @SelfNested.WithSelf.F [symbolic = @SelfNested.WithSelf.%SelfNested.WithSelf.F (constants.%SelfNested.WithSelf.F.257)] { -// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.fb7) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.4b0) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @SelfNested.WithSelf.F.%pattern_type (%pattern_type.4b0) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cbf) = value_param call_param0 -// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.cbf)] { +// CHECK:STDOUT: %x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.e6d) = value_param call_param0 +// CHECK:STDOUT: %.loc32_37.1: type = splice_block %.loc32_37.3 [symbolic = %tuple.type (constants.%tuple.type.e6d)] { // CHECK:STDOUT: %Self.ref.loc32_12: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.as_type.loc32_16: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.d99)] +// CHECK:STDOUT: %Self.as_type.loc32_16.2: type = facet_access_type %Self.ref.loc32_12 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %.loc32_16: type = converted %Self.ref.loc32_12, %Self.as_type.loc32_16.2 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %ptr.loc32_16.2: type = ptr_type %.loc32_16 [symbolic = %ptr.loc32_16.1 (constants.%ptr.ad7)] // CHECK:STDOUT: %Self.ref.loc32_24: %SelfNested.type = name_ref Self, @SelfNested.%Self [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] +// CHECK:STDOUT: %Self.as_type.loc32_24: type = facet_access_type %Self.ref.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %.loc32_24: type = converted %Self.ref.loc32_24, %Self.as_type.loc32_24 [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b90)] // CHECK:STDOUT: %.loc32_35.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc32_35.2: type = converted %.loc32_35.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.07b), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.b54)] -// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) [symbolic = %tuple (constants.%tuple.ceb)] -// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.cbf [symbolic = %tuple.type (constants.%tuple.type.cbf)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.2: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.b90), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.1c0)] +// CHECK:STDOUT: %.loc32_37.2: %tuple.type.24b = tuple_literal (%ptr.loc32_16.2, %struct_type.x.y.loc32_36.2) [symbolic = %tuple (constants.%tuple.3de)] +// CHECK:STDOUT: %.loc32_37.3: type = converted %.loc32_37.2, constants.%tuple.type.e6d [symbolic = %tuple.type (constants.%tuple.type.e6d)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cbf) = value_binding x, %x.param +// CHECK:STDOUT: %x: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.e6d) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %SelfNested.assoc_type = assoc_entity element0, %SelfNested.WithSelf.F.decl [concrete = constants.%assoc0.da4] // CHECK:STDOUT: @@ -351,11 +351,11 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseSelf.WithSelf.F(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f7b)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.e3d)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.431)] -// CHECK:STDOUT: %.loc16_32.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc16_32.1 (constants.%.85e)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type.563)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type.a02)] +// CHECK:STDOUT: %.loc16_32.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_32.1 (constants.%.4e5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d), %x.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d)) -> out %return.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.e3d); +// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563), %x.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563)) -> out %return.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type.563); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.UseSelf.impl.F(%self.param: %C, %x.param: %C) -> out %return.param: %C { @@ -376,14 +376,14 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @SelfNested.WithSelf.F(@SelfNested.%Self: %SelfNested.type) { // CHECK:STDOUT: %Self: %SelfNested.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.aed)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.07b)] -// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.binding.as_type [symbolic = %ptr.loc32_16.1 (constants.%ptr.d99)] -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.07b), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.b54)] -// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple (constants.%tuple.ceb)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.cbf)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.fb7)] +// CHECK:STDOUT: %Self.as_type.loc32_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc32_16.1 (constants.%Self.as_type.b90)] +// CHECK:STDOUT: %ptr.loc32_16.1: type = ptr_type %Self.as_type.loc32_16.1 [symbolic = %ptr.loc32_16.1 (constants.%ptr.ad7)] +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1: type = struct_type {.x: @SelfNested.WithSelf.F.%Self.as_type.loc32_16.1 (%Self.as_type.b90), .y: %empty_tuple.type} [symbolic = %struct_type.x.y.loc32_36.1 (constants.%struct_type.x.y.1c0)] +// CHECK:STDOUT: %tuple: %tuple.type.24b = tuple_value (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple (constants.%tuple.3de)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (%ptr.loc32_16.1, %struct_type.x.y.loc32_36.1) [symbolic = %tuple.type (constants.%tuple.type.e6d)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %tuple.type [symbolic = %pattern_type (constants.%pattern_type.4b0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.cbf)); +// CHECK:STDOUT: fn(%x.param: @SelfNested.WithSelf.F.%tuple.type (%tuple.type.e6d)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.as.SelfNested.impl.F(%x.param: %tuple.type.2f1); @@ -399,9 +399,9 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%Self.f7b) { // CHECK:STDOUT: %Self => constants.%Self.f7b -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.e3d -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.431 -// CHECK:STDOUT: %.loc16_32.1 => constants.%.85e +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type.563 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.a02 +// CHECK:STDOUT: %.loc16_32.1 => constants.%.4e5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%UseSelf.facet.d4d) { @@ -413,7 +413,7 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.d4d) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.d4d -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: %.loc16_32.1 => constants.%.a69 // CHECK:STDOUT: } @@ -427,7 +427,7 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%UseSelf.facet.6f8) { // CHECK:STDOUT: %Self => constants.%UseSelf.facet.6f8 -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%D // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9c8 // CHECK:STDOUT: %.loc16_32.1 => constants.%.9a5 // CHECK:STDOUT: } @@ -441,12 +441,12 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%Self.aed) { // CHECK:STDOUT: %Self => constants.%Self.aed -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.07b -// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.d99 -// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.b54 -// CHECK:STDOUT: %tuple => constants.%tuple.ceb -// CHECK:STDOUT: %tuple.type => constants.%tuple.type.cbf -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fb7 +// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%Self.as_type.b90 +// CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.ad7 +// CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.1c0 +// CHECK:STDOUT: %tuple => constants.%tuple.3de +// CHECK:STDOUT: %tuple.type => constants.%tuple.type.e6d +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.4b0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf(constants.%SelfNested.facet.f22) { @@ -458,7 +458,7 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.f22) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.f22 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%C // CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.31e // CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.710 // CHECK:STDOUT: %tuple => constants.%tuple.509 @@ -475,7 +475,7 @@ impl D as SelfNested { // CHECK:STDOUT: // CHECK:STDOUT: specific @SelfNested.WithSelf.F(constants.%SelfNested.facet.372) { // CHECK:STDOUT: %Self => constants.%SelfNested.facet.372 -// CHECK:STDOUT: %Self.binding.as_type => constants.%D +// CHECK:STDOUT: %Self.as_type.loc32_16.1 => constants.%D // CHECK:STDOUT: %ptr.loc32_16.1 => constants.%ptr.805 // CHECK:STDOUT: %struct_type.x.y.loc32_36.1 => constants.%struct_type.x.y.3e1 // CHECK:STDOUT: %tuple => constants.%tuple.21a diff --git a/toolchain/check/testdata/impl/use_assoc_entity.carbon b/toolchain/check/testdata/impl/use_assoc_entity.carbon index 6ee488b2ac8e..8d892a87834e 100644 --- a/toolchain/check/testdata/impl/use_assoc_entity.carbon +++ b/toolchain/check/testdata/impl/use_assoc_entity.carbon @@ -353,8 +353,8 @@ fn F() { // CHECK:STDOUT: %Self.8a1: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0.ebd: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete] -// CHECK:STDOUT: %Self.binding.as_type.ed8: type = symbolic_binding_type Self, 0, %Self.8a1 [symbolic] -// CHECK:STDOUT: %pattern_type.832: type = pattern_type %Self.binding.as_type.ed8 [symbolic] +// CHECK:STDOUT: %Self.as_type.9ea: type = facet_access_type %Self.8a1 [symbolic] +// CHECK:STDOUT: %pattern_type.909: type = pattern_type %Self.as_type.9ea [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.89e: = lookup_impl_witness %Self.8a1, @J [symbolic] // CHECK:STDOUT: %impl.elem0.335: type = impl_witness_access %J.lookup_impl_witness.89e, element0 [symbolic] // CHECK:STDOUT: %pattern_type.c1a: type = pattern_type %impl.elem0.335 [symbolic] @@ -367,7 +367,7 @@ fn F() { // CHECK:STDOUT: %.Self.2fa: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.type.e19: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self.2fa) [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.659: %J.WithSelf.F.type.e19 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.46a: = lookup_impl_witness %.Self.2fa, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.a58: type = impl_witness_access %J.lookup_impl_witness.46a, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -464,8 +464,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -497,8 +497,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc21_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc21_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %C.ref.loc21_24: type = name_ref C, file.%C.decl [concrete = constants.%C] @@ -518,8 +518,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.832) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.909) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.909) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %u.param_patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @J.WithSelf.F.%pattern_type.loc5_21 (%pattern_type.c1a) = out_param_pattern [concrete] @@ -528,13 +528,13 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %.loc5_29.2: Core.Form = init_form %U.ref.loc5_29 [symbolic = %.loc5_29.1 (constants.%.77f)] -// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] { +// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9ea) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9ea)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9ea)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9ea) = value_binding self, %self.param // CHECK:STDOUT: %u.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335) = value_param call_param1 // CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] { // CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] @@ -627,14 +627,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.832)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.909)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc5_29.1: Core.Form = init_form %impl.elem0.loc5_23.1 [symbolic = %.loc5_29.1 (constants.%.77f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.ed8), %u.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.9ea), %u.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.F.%impl.elem0.loc5_23.1 (%impl.elem0.335); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.J.impl.F(%self.param: %empty_tuple.type, %u.param: %i32) -> out %return.param: %i32 { @@ -686,8 +686,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self.8a1) { // CHECK:STDOUT: %Self => constants.%Self.8a1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ed8 -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.832 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.9ea +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.909 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.335 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.c1a @@ -710,7 +710,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.a51) { // CHECK:STDOUT: %Self => constants.%J.facet.a51 -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.5bf // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%i32 @@ -727,7 +727,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet.05d) { // CHECK:STDOUT: %Self => constants.%J.facet.05d -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%C // CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.7c7 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness.00b // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%C @@ -755,7 +755,7 @@ fn F() { // CHECK:STDOUT: %.Self.2fa: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.type.e19: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self.2fa) [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.659: %J.WithSelf.F.type.e19 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.46a: = lookup_impl_witness %.Self.2fa, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.a58: type = impl_witness_access %J.lookup_impl_witness.46a, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -837,8 +837,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_19: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1019,8 +1019,8 @@ fn F() { // CHECK:STDOUT: %J.WithSelf.F.type.adb: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self.8a1) [symbolic] // CHECK:STDOUT: %J.WithSelf.F.569: %J.WithSelf.F.type.adb = struct_value () [symbolic] // CHECK:STDOUT: %assoc1.eeb: %J.assoc_type = assoc_entity element1, @J.WithSelf.%J.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %Self.binding.as_type.ed8: type = symbolic_binding_type Self, 0, %Self.8a1 [symbolic] -// CHECK:STDOUT: %pattern_type.832: type = pattern_type %Self.binding.as_type.ed8 [symbolic] +// CHECK:STDOUT: %Self.as_type.9ea: type = facet_access_type %Self.8a1 [symbolic] +// CHECK:STDOUT: %pattern_type.909: type = pattern_type %Self.as_type.9ea [symbolic] // CHECK:STDOUT: %J.WithSelf.G.type.ace: type = fn_type @J.WithSelf.G, @J.WithSelf(%Self.8a1) [symbolic] // CHECK:STDOUT: %J.WithSelf.G.6e7: %J.WithSelf.G.type.ace = struct_value () [symbolic] // CHECK:STDOUT: %assoc2: %J.assoc_type = assoc_entity element2, @J.WithSelf.%J.WithSelf.G.decl [concrete] @@ -1030,7 +1030,7 @@ fn F() { // CHECK:STDOUT: %J.WithSelf.F.659: %J.WithSelf.F.type.e19 = struct_value () [symbolic_self] // CHECK:STDOUT: %J.WithSelf.G.type.2cf: type = fn_type @J.WithSelf.G, @J.WithSelf(%.Self.2fa) [symbolic_self] // CHECK:STDOUT: %J.WithSelf.G.4f5: %J.WithSelf.G.type.2cf = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.46a: = lookup_impl_witness %.Self.2fa, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.a58: type = impl_witness_access %J.lookup_impl_witness.46a, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -1112,8 +1112,8 @@ fn F() { // CHECK:STDOUT: %.Self.c39: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.14f: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.5a3: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.WithSelf.F.type.41f: type = fn_type @J.WithSelf.F, @J.WithSelf(%T) [symbolic] // CHECK:STDOUT: %J.WithSelf.F.f01: %J.WithSelf.F.type.41f = struct_value () [symbolic] // CHECK:STDOUT: %J.WithSelf.G.type.b2e: type = fn_type @J.WithSelf.G, @J.WithSelf(%T) [symbolic] @@ -1124,7 +1124,7 @@ fn F() { // CHECK:STDOUT: %.a8e: Core.Form = init_form %impl.elem0.560 [symbolic] // CHECK:STDOUT: %GenericCallF.type: type = fn_type @GenericCallF [concrete] // CHECK:STDOUT: %GenericCallF: %GenericCallF.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.19a: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bee: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %require_complete.06a: = require_complete_type %impl.elem0.560 [symbolic] // CHECK:STDOUT: %.43f: type = fn_type_with_self_type %J.WithSelf.F.type.41f, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.43f = impl_witness_access %J.lookup_impl_witness.264, element1 [symbolic] @@ -1174,16 +1174,16 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %GenericCallF.decl: %GenericCallF.type = fn_decl @GenericCallF [concrete = constants.%GenericCallF] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.14f) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.5a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallF.%pattern_type.loc28_25 (%pattern_type.5a3) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: %u.param_patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @GenericCallF.%pattern_type.loc28_31 (%pattern_type.ad6) = return_slot_pattern %return.param_patt, %impl.elem0.loc28_42 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc28_41: %J.type = name_ref T, %T.loc28_18.2 [symbolic = %T.loc28_18.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_42: type = facet_access_type %T.ref.loc28_41 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc28_42.3: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc28_42: type = facet_access_type %T.ref.loc28_41 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_42.3: type = converted %T.ref.loc28_41, %T.as_type.loc28_42 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc28_42: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0.loc28_42: type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: %.loc28_42.4: Core.Form = init_form %impl.elem0.loc28_42 [symbolic = %.loc28_42.2 (constants.%.a8e)] @@ -1192,18 +1192,18 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc28_18.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc28_18.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallF.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc28_27.1: type = splice_block %.loc28_27.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc28_27.1: type = splice_block %.loc28_27.2 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc28_27: %J.type = name_ref T, %T.loc28_18.2 [symbolic = %T.loc28_18.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_27: type = facet_access_type %T.ref.loc28_27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc28_27.2: type = converted %T.ref.loc28_27, %T.as_type.loc28_27 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc28_27.2: type = facet_access_type %T.ref.loc28_27 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_27.2: type = converted %T.ref.loc28_27, %T.as_type.loc28_27.2 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallF.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560) = value_param call_param1 // CHECK:STDOUT: %.loc28_34.1: type = splice_block %impl.elem0.loc28_34.2 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.560)] { // CHECK:STDOUT: %T.ref.loc28_33: %J.type = name_ref T, %T.loc28_18.2 [symbolic = %T.loc28_18.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc28_34: type = facet_access_type %T.ref.loc28_33 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc28_34.2: type = converted %T.ref.loc28_33, %T.as_type.loc28_34 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc28_34: type = facet_access_type %T.ref.loc28_33 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_34.2: type = converted %T.ref.loc28_33, %T.as_type.loc28_34 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc28_34: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0.loc28_34.2: type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: } @@ -1255,8 +1255,8 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, %J.WithSelf.F.decl [concrete = constants.%assoc1.eeb] // CHECK:STDOUT: %J.WithSelf.G.decl: @J.WithSelf.%J.WithSelf.G.type (%J.WithSelf.G.type.ace) = fn_decl @J.WithSelf.G [symbolic = @J.WithSelf.%J.WithSelf.G (constants.%J.WithSelf.G.6e7)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.832) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.909) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc6_12 (%pattern_type.909) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = value_param_pattern [concrete] // CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc6_21 (%pattern_type.c1a) = out_param_pattern [concrete] @@ -1265,13 +1265,13 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc6_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc6_29: type = name_ref U, %impl.elem0.loc6_29 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %.loc6_29.2: Core.Form = init_form %U.ref.loc6_29 [symbolic = %.loc6_29.1 (constants.%.77f)] -// CHECK:STDOUT: %self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_param call_param0 -// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] { +// CHECK:STDOUT: %self.param: @J.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type.9ea) = value_param call_param0 +// CHECK:STDOUT: %.loc6_14.1: type = splice_block %.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.9ea)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] +// CHECK:STDOUT: %Self.as_type.loc6_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %.loc6_14.2: type = converted %Self.ref, %Self.as_type.loc6_14.2 [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.9ea)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ed8) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type.9ea) = value_binding self, %self.param // CHECK:STDOUT: %v.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335) = value_param call_param1 // CHECK:STDOUT: %.loc6_23: type = splice_block %U.ref.loc6_23 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] { // CHECK:STDOUT: %impl.elem0.loc6_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] @@ -1343,8 +1343,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -1376,14 +1376,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8a1)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.ed8)] -// CHECK:STDOUT: %pattern_type.loc6_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc6_12 (constants.%pattern_type.832)] +// CHECK:STDOUT: %Self.as_type.loc6_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_14.1 (constants.%Self.as_type.9ea)] +// CHECK:STDOUT: %pattern_type.loc6_12: type = pattern_type %Self.as_type.loc6_14.1 [symbolic = %pattern_type.loc6_12 (constants.%pattern_type.909)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc6_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc6_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %pattern_type.loc6_21: type = pattern_type %impl.elem0.loc6_23.1 [symbolic = %pattern_type.loc6_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc6_29.1: Core.Form = init_form %impl.elem0.loc6_23.1 [symbolic = %.loc6_29.1 (constants.%.77f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type.ed8), %v.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type.9ea), %v.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc6_23.1 (%impl.elem0.335); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @E.as.J.impl.F(%u.param: %i32) -> out %return.param: %i32 { @@ -1515,24 +1515,24 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallF(%T.loc28_18.2: %J.type) { // CHECK:STDOUT: %T.loc28_18.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc28_18.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc28_18.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc28_25: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc28_25 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %T.as_type.loc28_27.1: type = facet_access_type %T.loc28_18.1 [symbolic = %T.as_type.loc28_27.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc28_25: type = pattern_type %T.as_type.loc28_27.1 [symbolic = %pattern_type.loc28_25 (constants.%pattern_type.5a3)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc28_18.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc28_34.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_34.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: %pattern_type.loc28_31: type = pattern_type %impl.elem0.loc28_34.1 [symbolic = %pattern_type.loc28_31 (constants.%pattern_type.ad6)] // CHECK:STDOUT: %.loc28_42.2: Core.Form = init_form %impl.elem0.loc28_34.1 [symbolic = %.loc28_42.2 (constants.%.a8e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc28_25 (constants.%require_complete.19a)] +// CHECK:STDOUT: %require_complete.loc28_25: = require_complete_type %T.as_type.loc28_27.1 [symbolic = %require_complete.loc28_25 (constants.%require_complete.bee)] // CHECK:STDOUT: %require_complete.loc28_31: = require_complete_type %impl.elem0.loc28_34.1 [symbolic = %require_complete.loc28_31 (constants.%require_complete.06a)] // CHECK:STDOUT: %J.WithSelf.F.type: type = fn_type @J.WithSelf.F, @J.WithSelf(%T.loc28_18.1) [symbolic = %J.WithSelf.F.type (constants.%J.WithSelf.F.type.41f)] // CHECK:STDOUT: %.loc29: type = fn_type_with_self_type %J.WithSelf.F.type, %T.loc28_18.1 [symbolic = %.loc29 (constants.%.43f)] // CHECK:STDOUT: %impl.elem1.loc29_11.2: @GenericCallF.%.loc29 (%.43f) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc29_11.2: = specific_impl_function %impl.elem1.loc29_11.2, @J.WithSelf.F(%T.loc28_18.1) [symbolic = %specific_impl_fn.loc29_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560)) -> out %return.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560) { +// CHECK:STDOUT: fn(%t.param: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type), %u.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560)) -> out %return.param: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallF.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallF.%T.as_type.loc28_27.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1.eeb] // CHECK:STDOUT: %impl.elem1.loc29_11.1: @GenericCallF.%.loc29 (%.43f) = impl_witness_access constants.%J.lookup_impl_witness.264, element1 [symbolic = %impl.elem1.loc29_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref: @GenericCallF.%impl.elem0.loc28_34.1 (%impl.elem0.560) = name_ref u, %u @@ -1581,8 +1581,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.G(constants.%Self.8a1) { // CHECK:STDOUT: %Self => constants.%Self.8a1 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.ed8 -// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.832 +// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type.9ea +// CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.909 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%impl.elem0.335 // CHECK:STDOUT: %pattern_type.loc6_21 => constants.%pattern_type.c1a @@ -1617,7 +1617,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.G(constants.%J.facet) { // CHECK:STDOUT: %Self => constants.%J.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%E +// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%E // CHECK:STDOUT: %pattern_type.loc6_12 => constants.%pattern_type.99f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc6_23.1 => constants.%i32 @@ -1645,8 +1645,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%T) { // CHECK:STDOUT: %T.loc28_18.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc28_25 => constants.%pattern_type.14f +// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc28_25 => constants.%pattern_type.5a3 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%impl.elem0.560 // CHECK:STDOUT: %pattern_type.loc28_31 => constants.%pattern_type.ad6 @@ -1663,7 +1663,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallF(constants.%J.facet) { // CHECK:STDOUT: %T.loc28_18.1 => constants.%J.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%E +// CHECK:STDOUT: %T.as_type.loc28_27.1 => constants.%E // CHECK:STDOUT: %pattern_type.loc28_25 => constants.%pattern_type.99f // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.impl_witness // CHECK:STDOUT: %impl.elem0.loc28_34.1 => constants.%i32 @@ -1684,9 +1684,9 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.ab9: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type.d31 [symbolic] -// CHECK:STDOUT: %.e46: Core.Form = init_form %Self.binding.as_type.d31 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type.a26 [symbolic] +// CHECK:STDOUT: %.eb0: Core.Form = init_form %Self.as_type.a26 [symbolic] // CHECK:STDOUT: %I.WithSelf.Op.type.71c: type = fn_type @I.WithSelf.Op, @I.WithSelf(%Self.ab9) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.WithSelf.Op.ae1: %I.WithSelf.Op.type.71c = struct_value () [symbolic] @@ -1712,8 +1712,8 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.14f: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.5a3: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.WithSelf.F.type.41f: type = fn_type @J.WithSelf.F, @J.WithSelf(%T) [symbolic] // CHECK:STDOUT: %J.WithSelf.F.f01: %J.WithSelf.F.type.41f = struct_value () [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.264: = lookup_impl_witness %T, @J [symbolic] @@ -1723,7 +1723,7 @@ fn F() { // CHECK:STDOUT: %.076: Core.Form = init_form %as_type.baf [symbolic] // CHECK:STDOUT: %GenericResult.type: type = fn_type @GenericResult [concrete] // CHECK:STDOUT: %GenericResult: %GenericResult.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.19a: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bee: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %require_complete.9b3: = require_complete_type %as_type.baf [symbolic] // CHECK:STDOUT: %.43f: type = fn_type_with_self_type %J.WithSelf.F.type.41f, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.43f = impl_witness_access %J.lookup_impl_witness.264, element1 [symbolic] @@ -1766,16 +1766,16 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericResult.decl: %GenericResult.type = fn_decl @GenericResult [concrete = constants.%GenericResult] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.14f) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.5a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericResult.%pattern_type.loc12_26 (%pattern_type.5a3) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: %u.param_patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @GenericResult.%pattern_type.loc12_32 (%pattern_type.bba) = return_slot_pattern %return.param_patt, %.loc12_43.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc12_42: %J.type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_43: type = facet_access_type %T.ref.loc12_42 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc12_43.3: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc12_43: type = facet_access_type %T.ref.loc12_42 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_43.3: type = converted %T.ref.loc12_42, %T.as_type.loc12_43 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc12_43: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.445] // CHECK:STDOUT: %impl.elem0.loc12_43: %facet_type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.397)] // CHECK:STDOUT: %as_type.loc12_43: type = facet_access_type %impl.elem0.loc12_43 [symbolic = %as_type.loc12_35.1 (constants.%as_type.baf)] @@ -1786,18 +1786,18 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc12_19.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericResult.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc12_28.1: type = splice_block %.loc12_28.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc12_28.1: type = splice_block %.loc12_28.2 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc12_28: %J.type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_28: type = facet_access_type %T.ref.loc12_28 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc12_28.2: type = converted %T.ref.loc12_28, %T.as_type.loc12_28 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc12_28.2: type = facet_access_type %T.ref.loc12_28 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_28.2: type = converted %T.ref.loc12_28, %T.as_type.loc12_28.2 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericResult.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.baf) = value_param call_param1 // CHECK:STDOUT: %.loc12_35.1: type = splice_block %.loc12_35.3 [symbolic = %as_type.loc12_35.1 (constants.%as_type.baf)] { // CHECK:STDOUT: %T.ref.loc12_34: %J.type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc12_35: type = facet_access_type %T.ref.loc12_34 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc12_35.2: type = converted %T.ref.loc12_34, %T.as_type.loc12_35 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc12_35: type = facet_access_type %T.ref.loc12_34 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc12_35.2: type = converted %T.ref.loc12_34, %T.as_type.loc12_35 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc12_35: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.445] // CHECK:STDOUT: %impl.elem0.loc12_35.2: %facet_type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.397)] // CHECK:STDOUT: %as_type.loc12_35.2: type = facet_access_type %impl.elem0.loc12_35.2 [symbolic = %as_type.loc12_35.1 (constants.%as_type.baf)] @@ -1815,33 +1815,33 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.Op.decl: @I.WithSelf.%I.WithSelf.Op.type (%I.WithSelf.Op.type.71c) = fn_decl @I.WithSelf.Op [symbolic = @I.WithSelf.%I.WithSelf.Op (constants.%I.WithSelf.Op.ae1)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] -// CHECK:STDOUT: %b.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %b.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = at_binding_pattern b, %b.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.fa0) = return_slot_pattern %return.param_patt, %.loc4_33.2 [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %b.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %b.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = at_binding_pattern b, %b.param_patt [concrete] +// CHECK:STDOUT: %return.param_patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @I.WithSelf.Op.%pattern_type (%pattern_type.965) = return_slot_pattern %return.param_patt, %.loc4_33.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc4_33: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc4_33: type = facet_access_type %Self.ref.loc4_33 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc4_33.2: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc4_33.3: Core.Form = init_form %.loc4_33.2 [symbolic = %.loc4_33.1 (constants.%.e46)] -// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %Self.as_type.loc4_33: type = facet_access_type %Self.ref.loc4_33 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc4_33.2: type = converted %Self.ref.loc4_33, %Self.as_type.loc4_33 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc4_33.3: Core.Form = init_form %.loc4_33.2 [symbolic = %.loc4_33.1 (constants.%.eb0)] +// CHECK:STDOUT: %self.param: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref.loc4_15: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc4_15: type = facet_access_type %Self.ref.loc4_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref.loc4_15, %Self.as_type.loc4_15 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref.loc4_15 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref.loc4_15, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding self, %self.param -// CHECK:STDOUT: %b.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param1 -// CHECK:STDOUT: %.loc4_24.1: type = splice_block %.loc4_24.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %self: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = value_binding self, %self.param +// CHECK:STDOUT: %b.param: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = value_param call_param1 +// CHECK:STDOUT: %.loc4_24.1: type = splice_block %.loc4_24.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref.loc4_24: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type.loc4_24: type = facet_access_type %Self.ref.loc4_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc4_24.2: type = converted %Self.ref.loc4_24, %Self.as_type.loc4_24 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc4_24: type = facet_access_type %Self.ref.loc4_24 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc4_24.2: type = converted %Self.ref.loc4_24, %Self.as_type.loc4_24 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %b: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding b, %b.param -// CHECK:STDOUT: %return.param: ref @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = out_param call_param2 -// CHECK:STDOUT: %return: ref @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31) = return_slot %return.param +// CHECK:STDOUT: %b: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = value_binding b, %b.param +// CHECK:STDOUT: %return.param: ref @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = out_param call_param2 +// CHECK:STDOUT: %return: ref @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.Op.decl [concrete = constants.%assoc0.aa8] // CHECK:STDOUT: @@ -1898,11 +1898,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.Op(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] -// CHECK:STDOUT: %.loc4_33.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc4_33.1 (constants.%.e46)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.965)] +// CHECK:STDOUT: %.loc4_33.1: Core.Form = init_form %Self.as_type.loc4_15.1 [symbolic = %.loc4_33.1 (constants.%.eb0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31), %b.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31)) -> out %return.param: @I.WithSelf.Op.%Self.binding.as_type (%Self.binding.as_type.d31); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26), %b.param: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26)) -> out %return.param: @I.WithSelf.Op.%Self.as_type.loc4_15.1 (%Self.as_type.a26); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.F(@J.%Self: %J.type) { @@ -1918,8 +1918,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericResult(%T.loc12_19.2: %J.type) { // CHECK:STDOUT: %T.loc12_19.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_19.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc12_26: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc12_26 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %T.as_type.loc12_28.1: type = facet_access_type %T.loc12_19.1 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc12_26: type = pattern_type %T.as_type.loc12_28.1 [symbolic = %pattern_type.loc12_26 (constants.%pattern_type.5a3)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc12_19.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc12_35.1: %facet_type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc12_35.1 (constants.%impl.elem0.397)] // CHECK:STDOUT: %as_type.loc12_35.1: type = facet_access_type %impl.elem0.loc12_35.1 [symbolic = %as_type.loc12_35.1 (constants.%as_type.baf)] @@ -1927,7 +1927,7 @@ fn F() { // CHECK:STDOUT: %.loc12_43.2: Core.Form = init_form %as_type.loc12_35.1 [symbolic = %.loc12_43.2 (constants.%.076)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc12_26 (constants.%require_complete.19a)] +// CHECK:STDOUT: %require_complete.loc12_26: = require_complete_type %T.as_type.loc12_28.1 [symbolic = %require_complete.loc12_26 (constants.%require_complete.bee)] // CHECK:STDOUT: %require_complete.loc12_32: = require_complete_type %as_type.loc12_35.1 [symbolic = %require_complete.loc12_32 (constants.%require_complete.9b3)] // CHECK:STDOUT: %J.WithSelf.F.type: type = fn_type @J.WithSelf.F, @J.WithSelf(%T.loc12_19.1) [symbolic = %J.WithSelf.F.type (constants.%J.WithSelf.F.type.41f)] // CHECK:STDOUT: %.loc13_11: type = fn_type_with_self_type %J.WithSelf.F.type, %T.loc12_19.1 [symbolic = %.loc13_11 (constants.%.43f)] @@ -1946,9 +1946,9 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc13_29.2: @GenericResult.%.loc13_29.5 (%.0e3) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_29.2 (constants.%impl.elem0.4a3)] // CHECK:STDOUT: %specific_impl_fn.loc13_29.2: = specific_impl_function %impl.elem0.loc13_29.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc13_29.2 (constants.%specific_impl_fn.86e)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericResult.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.baf)) -> out %return.param: @GenericResult.%as_type.loc12_35.1 (%as_type.baf) { +// CHECK:STDOUT: fn(%t.param: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type), %u.param: @GenericResult.%as_type.loc12_35.1 (%as_type.baf)) -> out %return.param: @GenericResult.%as_type.loc12_35.1 (%as_type.baf) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericResult.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericResult.%T.as_type.loc12_28.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref.loc13_11: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_11.1: @GenericResult.%.loc13_11 (%.43f) = impl_witness_access constants.%J.lookup_impl_witness.264, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_14: @GenericResult.%as_type.loc12_35.1 (%as_type.baf) = name_ref u, %u @@ -1961,8 +1961,8 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc13_16.1: @GenericResult.%.loc13_16 (%.73b) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_16.2 (constants.%impl.elem0.d74)] // CHECK:STDOUT: %bound_method.loc13_16: = bound_method %J.WithSelf.F.call.loc13_15, %impl.elem0.loc13_16.1 // CHECK:STDOUT: %T.ref.loc13: %J.type = name_ref T, %T.loc12_19.2 [symbolic = %T.loc12_19.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type %T.ref.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_25: type = converted %T.ref.loc13, %T.as_type.loc13 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc13: type = facet_access_type %T.ref.loc13 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_25: type = converted %T.ref.loc13, %T.as_type.loc13 [symbolic = %T.as_type.loc12_28.1 (constants.%T.as_type)] // CHECK:STDOUT: %F.ref.loc13_25: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc13_25: @GenericResult.%.loc13_11 (%.43f) = impl_witness_access constants.%J.lookup_impl_witness.264, element1 [symbolic = %impl.elem1.loc13_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %u.ref.loc13_28: @GenericResult.%as_type.loc12_35.1 (%as_type.baf) = name_ref u, %u @@ -2003,9 +2003,9 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%Self.ab9) { // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 -// CHECK:STDOUT: %.loc4_33.1 => constants.%.e46 +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type.a26 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 +// CHECK:STDOUT: %.loc4_33.1 => constants.%.eb0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%Self.8a1) { @@ -2033,8 +2033,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericResult(constants.%T) { // CHECK:STDOUT: %T.loc12_19.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc12_26 => constants.%pattern_type.14f +// CHECK:STDOUT: %T.as_type.loc12_28.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc12_26 => constants.%pattern_type.5a3 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc12_35.1 => constants.%impl.elem0.397 // CHECK:STDOUT: %as_type.loc12_35.1 => constants.%as_type.baf @@ -2060,7 +2060,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.Op(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%as_type.baf +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%as_type.baf // CHECK:STDOUT: %pattern_type => constants.%pattern_type.bba // CHECK:STDOUT: %.loc4_33.1 => constants.%.076 // CHECK:STDOUT: } @@ -2072,8 +2072,8 @@ fn F() { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.832: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.909: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.89e: = lookup_impl_witness %Self, @J [symbolic] // CHECK:STDOUT: %impl.elem0.335: type = impl_witness_access %J.lookup_impl_witness.89e, element0 [symbolic] // CHECK:STDOUT: %pattern_type.c1a: type = pattern_type %impl.elem0.335 [symbolic] @@ -2085,8 +2085,8 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.14f: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.5a3: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %J.WithSelf.G.type.b2e: type = fn_type @J.WithSelf.G, @J.WithSelf(%T) [symbolic] // CHECK:STDOUT: %J.WithSelf.G.310: %J.WithSelf.G.type.b2e = struct_value () [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.264: = lookup_impl_witness %T, @J [symbolic] @@ -2095,7 +2095,7 @@ fn F() { // CHECK:STDOUT: %.a8e: Core.Form = init_form %impl.elem0.560 [symbolic] // CHECK:STDOUT: %GenericCallInterfaceQualified.type: type = fn_type @GenericCallInterfaceQualified [concrete] // CHECK:STDOUT: %GenericCallInterfaceQualified: %GenericCallInterfaceQualified.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.19a: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.bee: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %require_complete.06a: = require_complete_type %impl.elem0.560 [symbolic] // CHECK:STDOUT: %.298: type = fn_type_with_self_type %J.WithSelf.G.type.b2e, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.298 = impl_witness_access %J.lookup_impl_witness.264, element1 [symbolic] @@ -2119,16 +2119,16 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericCallInterfaceQualified.decl: %GenericCallInterfaceQualified.type = fn_decl @GenericCallInterfaceQualified [concrete = constants.%GenericCallInterfaceQualified] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.14f) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.14f) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.5a3) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_42 (%pattern_type.5a3) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: %u.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = at_binding_pattern u, %u.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @GenericCallInterfaceQualified.%pattern_type.loc8_48 (%pattern_type.ad6) = return_slot_pattern %return.param_patt, %impl.elem0.loc8_59 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref.loc8_58: %J.type = name_ref T, %T.loc8_35.2 [symbolic = %T.loc8_35.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_59: type = facet_access_type %T.ref.loc8_58 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_59.3: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_59: type = facet_access_type %T.ref.loc8_58 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_59.3: type = converted %T.ref.loc8_58, %T.as_type.loc8_59 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc8_59: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8_59: type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: %.loc8_59.4: Core.Form = init_form %impl.elem0.loc8_59 [symbolic = %.loc8_59.2 (constants.%.a8e)] @@ -2137,18 +2137,18 @@ fn F() { // CHECK:STDOUT: %J.ref.loc8: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_35.2: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_35.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_44.1: type = splice_block %.loc8_44.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_44.1: type = splice_block %.loc8_44.2 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc8_44: %J.type = name_ref T, %T.loc8_35.2 [symbolic = %T.loc8_35.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_44: type = facet_access_type %T.ref.loc8_44 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_44.2: type = converted %T.ref.loc8_44, %T.as_type.loc8_44 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_44.2: type = facet_access_type %T.ref.loc8_44 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_44.2: type = converted %T.ref.loc8_44, %T.as_type.loc8_44.2 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.560) = value_param call_param1 // CHECK:STDOUT: %.loc8_51.1: type = splice_block %impl.elem0.loc8_51.2 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.560)] { // CHECK:STDOUT: %T.ref.loc8_50: %J.type = name_ref T, %T.loc8_35.2 [symbolic = %T.loc8_35.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc8_51: type = facet_access_type %T.ref.loc8_50 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_51.2: type = converted %T.ref.loc8_50, %T.as_type.loc8_51 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_51: type = facet_access_type %T.ref.loc8_50 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_51.2: type = converted %T.ref.loc8_50, %T.as_type.loc8_51 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref.loc8_51: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8_51.2: type = impl_witness_access constants.%J.lookup_impl_witness.264, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: } @@ -2167,8 +2167,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%U [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J.WithSelf.G.decl: @J.WithSelf.%J.WithSelf.G.type (%J.WithSelf.G.type.ace) = fn_decl @J.WithSelf.G [symbolic = @J.WithSelf.%J.WithSelf.G (constants.%J.WithSelf.G.6e7)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.832) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.909) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.G.%pattern_type.loc5_12 (%pattern_type.909) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %v.param_patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = value_param_pattern [concrete] // CHECK:STDOUT: %v.patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @J.WithSelf.G.%pattern_type.loc5_21 (%pattern_type.c1a) = out_param_pattern [concrete] @@ -2177,13 +2177,13 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc5_29: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %U.ref.loc5_29: type = name_ref U, %impl.elem0.loc5_29 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %.loc5_29.2: Core.Form = init_form %U.ref.loc5_29 [symbolic = %.loc5_29.1 (constants.%.77f)] -// CHECK:STDOUT: %self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @J.WithSelf.G.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.G.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %v.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335) = value_param call_param1 // CHECK:STDOUT: %.loc5_23: type = splice_block %U.ref.loc5_23 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] { // CHECK:STDOUT: %impl.elem0.loc5_23.2: type = impl_witness_access constants.%J.lookup_impl_witness.89e, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] @@ -2206,36 +2206,36 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.G(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.832)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.909)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %Self, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.89e)] // CHECK:STDOUT: %impl.elem0.loc5_23.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_23.1 (constants.%impl.elem0.335)] // CHECK:STDOUT: %pattern_type.loc5_21: type = pattern_type %impl.elem0.loc5_23.1 [symbolic = %pattern_type.loc5_21 (constants.%pattern_type.c1a)] // CHECK:STDOUT: %.loc5_29.1: Core.Form = init_form %impl.elem0.loc5_23.1 [symbolic = %.loc5_29.1 (constants.%.77f)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type), %v.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335); +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.G.%Self.as_type.loc5_14.1 (%Self.as_type), %v.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335)) -> out %return.param: @J.WithSelf.G.%impl.elem0.loc5_23.1 (%impl.elem0.335); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallInterfaceQualified(%T.loc8_35.2: %J.type) { // CHECK:STDOUT: %T.loc8_35.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_35.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_35.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc8_42: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc8_42 (constants.%pattern_type.14f)] +// CHECK:STDOUT: %T.as_type.loc8_44.1: type = facet_access_type %T.loc8_35.1 [symbolic = %T.as_type.loc8_44.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc8_42: type = pattern_type %T.as_type.loc8_44.1 [symbolic = %pattern_type.loc8_42 (constants.%pattern_type.5a3)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_35.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264)] // CHECK:STDOUT: %impl.elem0.loc8_51.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_51.1 (constants.%impl.elem0.560)] // CHECK:STDOUT: %pattern_type.loc8_48: type = pattern_type %impl.elem0.loc8_51.1 [symbolic = %pattern_type.loc8_48 (constants.%pattern_type.ad6)] // CHECK:STDOUT: %.loc8_59.2: Core.Form = init_form %impl.elem0.loc8_51.1 [symbolic = %.loc8_59.2 (constants.%.a8e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc8_42 (constants.%require_complete.19a)] +// CHECK:STDOUT: %require_complete.loc8_42: = require_complete_type %T.as_type.loc8_44.1 [symbolic = %require_complete.loc8_42 (constants.%require_complete.bee)] // CHECK:STDOUT: %require_complete.loc8_48: = require_complete_type %impl.elem0.loc8_51.1 [symbolic = %require_complete.loc8_48 (constants.%require_complete.06a)] // CHECK:STDOUT: %J.WithSelf.G.type: type = fn_type @J.WithSelf.G, @J.WithSelf(%T.loc8_35.1) [symbolic = %J.WithSelf.G.type (constants.%J.WithSelf.G.type.b2e)] // CHECK:STDOUT: %.loc9: type = fn_type_with_self_type %J.WithSelf.G.type, %T.loc8_35.1 [symbolic = %.loc9 (constants.%.298)] // CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallInterfaceQualified.%.loc9 (%.298) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @J.WithSelf.G(%T.loc8_35.1) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.560)) -> out %return.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.560) { +// CHECK:STDOUT: fn(%t.param: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type), %u.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.560)) -> out %return.param: @GenericCallInterfaceQualified.%impl.elem0.loc8_51.1 (%impl.elem0.560) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallInterfaceQualified.%T.as_type.loc8_44.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %J.ref.loc9: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %G.ref: %J.assoc_type = name_ref G, @J.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallInterfaceQualified.%.loc9 (%.298) = impl_witness_access constants.%J.lookup_impl_witness.264, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] @@ -2258,8 +2258,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.832 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.909 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.89e // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.335 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.c1a @@ -2275,8 +2275,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallInterfaceQualified(constants.%T) { // CHECK:STDOUT: %T.loc8_35.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc8_42 => constants.%pattern_type.14f +// CHECK:STDOUT: %T.as_type.loc8_44.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc8_42 => constants.%pattern_type.5a3 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc8_51.1 => constants.%impl.elem0.560 // CHECK:STDOUT: %pattern_type.loc8_48 => constants.%pattern_type.ad6 @@ -2285,8 +2285,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.G(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.14f +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.5a3 // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264 // CHECK:STDOUT: %impl.elem0.loc5_23.1 => constants.%impl.elem0.560 // CHECK:STDOUT: %pattern_type.loc5_21 => constants.%pattern_type.ad6 @@ -2312,7 +2312,7 @@ fn F() { // CHECK:STDOUT: %.Self.2fa: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.type.e19: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self.2fa) [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.659: %J.WithSelf.F.type.e19 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.46a: = lookup_impl_witness %.Self.2fa, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.a58: type = impl_witness_access %J.lookup_impl_witness.46a, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -2322,21 +2322,21 @@ fn F() { // CHECK:STDOUT: %J_where.type: type = facet_type <@J where %impl.elem0.a58 = %i32> [concrete] // CHECK:STDOUT: %pattern_type.6f0: type = pattern_type %J_where.type [concrete] // CHECK:STDOUT: %T: %J_where.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.12a: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.703: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %.ff5: Core.Form = init_form %i32 [concrete] // CHECK:STDOUT: %pattern_type.7ce: type = pattern_type %i32 [concrete] // CHECK:STDOUT: %GenericCallFI32.type: type = fn_type @GenericCallFI32 [concrete] // CHECK:STDOUT: %GenericCallFI32: %GenericCallFI32.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.226: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.f6c: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %J.WithSelf.F.type.4bb: type = fn_type @J.WithSelf.F, @J.WithSelf(%T) [symbolic] // CHECK:STDOUT: %J.WithSelf.F.3c9: %J.WithSelf.F.type.4bb = struct_value () [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.74d: = lookup_impl_witness %T, @J [symbolic] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness.74d) [symbolic] -// CHECK:STDOUT: %J.WithSelf.F.type.606: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [symbolic] -// CHECK:STDOUT: %J.WithSelf.F.459: %J.WithSelf.F.type.606 = struct_value () [symbolic] -// CHECK:STDOUT: %.3ee: type = fn_type_with_self_type %J.WithSelf.F.type.606, %J.facet [symbolic] -// CHECK:STDOUT: %impl.elem1: %.3ee = impl_witness_access %J.lookup_impl_witness.74d, element1 [symbolic] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type, (%J.lookup_impl_witness.74d) [symbolic] +// CHECK:STDOUT: %J.WithSelf.F.type.082: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [symbolic] +// CHECK:STDOUT: %J.WithSelf.F.efc: %J.WithSelf.F.type.082 = struct_value () [symbolic] +// CHECK:STDOUT: %.075: type = fn_type_with_self_type %J.WithSelf.F.type.082, %J.facet [symbolic] +// CHECK:STDOUT: %impl.elem1: %.075 = impl_witness_access %J.lookup_impl_witness.74d, element1 [symbolic] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem1, @J.WithSelf.F(%J.facet) [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] @@ -2380,8 +2380,8 @@ fn F() { // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} // CHECK:STDOUT: %GenericCallFI32.decl: %GenericCallFI32.type = fn_decl @GenericCallFI32 [concrete = constants.%GenericCallFI32] { // CHECK:STDOUT: %T.patt: %pattern_type.6f0 = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = value_param_pattern [concrete] -// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.12a) = at_binding_pattern t, %t.param_patt [concrete] +// CHECK:STDOUT: %t.param_patt: @GenericCallFI32.%pattern_type (%pattern_type.703) = value_param_pattern [concrete] +// CHECK:STDOUT: %t.patt: @GenericCallFI32.%pattern_type (%pattern_type.703) = at_binding_pattern t, %t.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.7ce = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.7ce = return_slot_pattern %return.param_patt, %i32.loc8_51 [concrete] // CHECK:STDOUT: } { @@ -2392,8 +2392,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self.2: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_32: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_32: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0.loc8: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %i32.loc8_37: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -2403,13 +2403,13 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_21.2: %J_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_21.1 (constants.%T)] -// CHECK:STDOUT: %t.param: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_45.1: type = splice_block %.loc8_45.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %t.param: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_45.1: type = splice_block %.loc8_45.2 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %J_where.type = name_ref T, %T.loc8_21.2 [symbolic = %T.loc8_21.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_45.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_45.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_45.2: type = converted %T.ref, %T.as_type.loc8_45.2 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %t: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type) = value_binding t, %t.param +// CHECK:STDOUT: %t: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = value_binding t, %t.param // CHECK:STDOUT: %return.param: ref %i32 = out_param call_param1 // CHECK:STDOUT: %return: ref %i32 = return_slot %return.param // CHECK:STDOUT: } @@ -2464,23 +2464,23 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @GenericCallFI32(%T.loc8_21.2: %J_where.type) { // CHECK:STDOUT: %T.loc8_21.1: %J_where.type = symbolic_binding T, 0 [symbolic = %T.loc8_21.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_21.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.12a)] +// CHECK:STDOUT: %T.as_type.loc8_45.1: type = facet_access_type %T.loc8_21.1 [symbolic = %T.as_type.loc8_45.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_45.1 [symbolic = %pattern_type (constants.%pattern_type.703)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.226)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_45.1 [symbolic = %require_complete (constants.%require_complete.f6c)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_21.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.74d)] -// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.binding.as_type, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet)] -// CHECK:STDOUT: %J.WithSelf.F.type: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [symbolic = %J.WithSelf.F.type (constants.%J.WithSelf.F.type.606)] -// CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type %J.WithSelf.F.type, %J.facet [symbolic = %.loc9_11 (constants.%.3ee)] -// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11 (%.3ee) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %J.facet: %J.type = facet_value %T.as_type.loc8_45.1, (%J.lookup_impl_witness) [symbolic = %J.facet (constants.%J.facet)] +// CHECK:STDOUT: %J.WithSelf.F.type: type = fn_type @J.WithSelf.F, @J.WithSelf(%J.facet) [symbolic = %J.WithSelf.F.type (constants.%J.WithSelf.F.type.082)] +// CHECK:STDOUT: %.loc9_11: type = fn_type_with_self_type %J.WithSelf.F.type, %J.facet [symbolic = %.loc9_11 (constants.%.075)] +// CHECK:STDOUT: %impl.elem1.loc9_11.2: @GenericCallFI32.%.loc9_11 (%.075) = impl_witness_access %J.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc9_11.2: = specific_impl_function %impl.elem1.loc9_11.2, @J.WithSelf.F(%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type)) -> out %return.param: %i32 { +// CHECK:STDOUT: fn(%t.param: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type)) -> out %return.param: %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @GenericCallFI32.%T.as_type.loc8_45.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %F.ref: %J.assoc_type = name_ref F, @J.WithSelf.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11 (%.3ee) = impl_witness_access constants.%J.lookup_impl_witness.74d, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] +// CHECK:STDOUT: %impl.elem1.loc9_11.1: @GenericCallFI32.%.loc9_11 (%.075) = impl_witness_access constants.%J.lookup_impl_witness.74d, element1 [symbolic = %impl.elem1.loc9_11.2 (constants.%impl.elem1)] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] // CHECK:STDOUT: %specific_impl_fn.loc9_11.1: = specific_impl_function %impl.elem1.loc9_11.1, @J.WithSelf.F(constants.%J.facet) [symbolic = %specific_impl_fn.loc9_11.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %impl.elem0.loc9: %.545 = impl_witness_access constants.%ImplicitAs.impl_witness.6bc, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.0b5] @@ -2519,8 +2519,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @GenericCallFI32(constants.%T) { // CHECK:STDOUT: %T.loc8_21.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.12a +// CHECK:STDOUT: %T.as_type.loc8_45.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.703 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%T) { @@ -2533,8 +2533,8 @@ fn F() { // CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%J.facet -// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.606 -// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.459 +// CHECK:STDOUT: %J.WithSelf.F.type => constants.%J.WithSelf.F.type.082 +// CHECK:STDOUT: %J.WithSelf.F => constants.%J.WithSelf.F.efc // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet) { @@ -2563,7 +2563,7 @@ fn F() { // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.type.e19: type = fn_type @J.WithSelf.F, @J.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %J.WithSelf.F.659: %J.WithSelf.F.type.e19 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness.46a: = lookup_impl_witness %.Self, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0.a58: type = impl_witness_access %J.lookup_impl_witness.46a, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -2691,8 +2691,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0.ebd] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness.46a, element0 [symbolic_self = constants.%impl.elem0.a58] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -2897,14 +2897,14 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %J.type: type = facet_type <@J> [concrete] // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.832: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.909: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %J.WithSelf.F.type.adb: type = fn_type @J.WithSelf.F, @J.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %J.WithSelf.F.569: %J.WithSelf.F.type.adb = struct_value () [symbolic] // CHECK:STDOUT: %J.assoc_type: type = assoc_entity_type @J [concrete] // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, @J.WithSelf.%J.WithSelf.F.decl [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type [symbolic] // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %J.impl_witness: = impl_witness @E.as.J.impl.%J.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.99f: type = pattern_type %E [concrete] @@ -2948,16 +2948,16 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %J.WithSelf.F.decl: @J.WithSelf.%J.WithSelf.F.type (%J.WithSelf.F.type.adb) = fn_decl @J.WithSelf.F [symbolic = @J.WithSelf.%J.WithSelf.F (constants.%J.WithSelf.F.569)] { -// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type (%pattern_type.832) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J.WithSelf.F.%pattern_type (%pattern_type.909) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J.WithSelf.F.%pattern_type (%pattern_type.909) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_21.1: type = splice_block %.loc4_21.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @J.WithSelf.F.%Self.as_type.loc4_21.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_21.1: type = splice_block %.loc4_21.2 [symbolic = %Self.as_type.loc4_21.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %J.type = name_ref Self, @J.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_21.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_21.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_21.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_21.2: type = converted %Self.ref, %Self.as_type.loc4_21.2 [symbolic = %Self.as_type.loc4_21.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J.WithSelf.F.%Self.as_type.loc4_21.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %J.assoc_type = assoc_entity element0, %J.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -3012,13 +3012,13 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J.WithSelf.F(@J.%Self: %J.type) { // CHECK:STDOUT: %Self: %J.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.832)] +// CHECK:STDOUT: %Self.as_type.loc4_21.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_21.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_21.1 [symbolic = %pattern_type (constants.%pattern_type.909)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc4_21.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)) { +// CHECK:STDOUT: fn(%self.param: @J.WithSelf.F.%Self.as_type.loc4_21.1 (%Self.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -3048,8 +3048,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.832 +// CHECK:STDOUT: %Self.as_type.loc4_21.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.909 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet) { @@ -3061,7 +3061,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf.F(constants.%J.facet) { // CHECK:STDOUT: %Self => constants.%J.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%E +// CHECK:STDOUT: %Self.as_type.loc4_21.1 => constants.%E // CHECK:STDOUT: %pattern_type => constants.%pattern_type.99f // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3082,7 +3082,7 @@ fn F() { // CHECK:STDOUT: %E: type = class_type @E [concrete] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -3149,8 +3149,8 @@ fn F() { // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: %.Self: %J.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_26: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref: %J.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.df0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -3203,8 +3203,8 @@ fn F() { // CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %J2.assoc_type: type = assoc_entity_type @J2 [concrete] // CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, @J2.WithSelf.%U2 [concrete] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.21d: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.307: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %J2.WithSelf.F.type.68c: type = fn_type @J2.WithSelf.F, @J2.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %J2.WithSelf.F.643: %J2.WithSelf.F.type.68c = struct_value () [symbolic] @@ -3213,7 +3213,7 @@ fn F() { // CHECK:STDOUT: %.Self: %J2.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %J2.WithSelf.F.type.30c: type = fn_type @J2.WithSelf.F, @J2.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %J2.WithSelf.F.99a: %J2.WithSelf.F.type.30c = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %J2.lookup_impl_witness: = lookup_impl_witness %.Self, @J2 [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J2.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -3267,8 +3267,8 @@ fn F() { // CHECK:STDOUT: %J2.ref: type = name_ref J2, file.%J2.decl [concrete = constants.%J2.type] // CHECK:STDOUT: %.Self: %J2.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J2.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc22_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc22_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U2.ref: %J2.assoc_type = name_ref U2, @U2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J2.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc22_28.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -3284,8 +3284,8 @@ fn F() { // CHECK:STDOUT: %J2.ref: type = name_ref J2, file.%J2.decl [concrete = constants.%J2.type] // CHECK:STDOUT: %.Self: %J2.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %J2.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc31_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc31_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %U2.ref: %J2.assoc_type = name_ref U2, @U2.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J2.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C2.ref.loc31_27: type = name_ref C2, file.%C2.decl [concrete = constants.%C2] @@ -3305,28 +3305,28 @@ fn F() { // CHECK:STDOUT: %assoc0: %J2.assoc_type = assoc_entity element0, @J2.WithSelf.%U2 [concrete = constants.%assoc0] // CHECK:STDOUT: } // CHECK:STDOUT: %J2.WithSelf.F.decl: @J2.WithSelf.%J2.WithSelf.F.type (%J2.WithSelf.F.type.68c) = fn_decl @J2.WithSelf.F [symbolic = @J2.WithSelf.%J2.WithSelf.F (constants.%J2.WithSelf.F.643)] { -// CHECK:STDOUT: %self.param_patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @J2.WithSelf.F.%pattern_type (%pattern_type.21d) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @J2.WithSelf.F.%pattern_type (%pattern_type.307) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @J2.WithSelf.F.%pattern_type (%pattern_type.307) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %z.param_patt: = value_param_pattern [concrete] // CHECK:STDOUT: %z.patt: = at_binding_pattern z, %z.param_patt [concrete] // CHECK:STDOUT: %return.patt: = return_slot_pattern , [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc19_35: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc19_39: type = facet_access_type %Self.ref.loc19_35 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc19_39: type = converted %Self.ref.loc19_35, %Self.as_type.loc19_39 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc19_39: type = facet_access_type %Self.ref.loc19_35 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc19_39: type = converted %Self.ref.loc19_35, %Self.as_type.loc19_39 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %U2.ref.loc19_39: = name_ref U2, [concrete = ] -// CHECK:STDOUT: %self.param: @J2.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc19_14.1: type = splice_block %.loc19_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @J2.WithSelf.F.%Self.as_type.loc19_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc19_14.1: type = splice_block %.loc19_14.2 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc19_14: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc19_14: type = facet_access_type %Self.ref.loc19_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc19_14.2: type = converted %Self.ref.loc19_14, %Self.as_type.loc19_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc19_14.2: type = facet_access_type %Self.ref.loc19_14 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc19_14.2: type = converted %Self.ref.loc19_14, %Self.as_type.loc19_14.2 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @J2.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @J2.WithSelf.F.%Self.as_type.loc19_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %z.param: = value_param call_param1 // CHECK:STDOUT: %.1: = splice_block [concrete = ] { // CHECK:STDOUT: %Self.ref.loc19_23: %J2.type = name_ref Self, @J2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc19_27: type = facet_access_type %Self.ref.loc19_23 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc19_27: type = converted %Self.ref.loc19_23, %Self.as_type.loc19_27 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc19_27: type = facet_access_type %Self.ref.loc19_23 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc19_27: type = converted %Self.ref.loc19_23, %Self.as_type.loc19_27 [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: %U2.ref.loc19_27: = name_ref U2, [concrete = ] // CHECK:STDOUT: } // CHECK:STDOUT: %z: = value_binding z, [concrete = ] @@ -3441,10 +3441,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J2.WithSelf.F(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.21d)] +// CHECK:STDOUT: %Self.as_type.loc19_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc19_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc19_14.1 [symbolic = %pattern_type (constants.%pattern_type.307)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @J2.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type), %z.param: ) -> ; +// CHECK:STDOUT: fn(%self.param: @J2.WithSelf.F.%Self.as_type.loc19_14.1 (%Self.as_type), %z.param: ) -> ; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.J2.impl.F.loc23_40.1(%self.param: %empty_tuple.type, %z.param: %empty_struct_type) -> out %return.param: %empty_struct_type { @@ -3490,8 +3490,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.21d +// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.307 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.WithSelf(constants.%.Self) { @@ -3510,7 +3510,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.WithSelf.F(constants.%J2.facet.6c9) { // CHECK:STDOUT: %Self => constants.%J2.facet.6c9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3523,7 +3523,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.WithSelf.F(constants.%J2.facet.f19) { // CHECK:STDOUT: %Self => constants.%J2.facet.f19 -// CHECK:STDOUT: %Self.binding.as_type => constants.%C2 +// CHECK:STDOUT: %Self.as_type.loc19_14.1 => constants.%C2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.8df // CHECK:STDOUT: } // CHECK:STDOUT: @@ -3534,8 +3534,8 @@ fn F() { // CHECK:STDOUT: %Self.44d: %K.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type @K [concrete] // CHECK:STDOUT: %assoc0.6cb: %K.assoc_type = assoc_entity element0, @K.WithSelf.%V [concrete] -// CHECK:STDOUT: %Self.binding.as_type.87a: type = symbolic_binding_type Self, 0, %Self.44d [symbolic] -// CHECK:STDOUT: %pattern_type.bcd: type = pattern_type %Self.binding.as_type.87a [symbolic] +// CHECK:STDOUT: %Self.as_type.6f5: type = facet_access_type %Self.44d [symbolic] +// CHECK:STDOUT: %pattern_type.c8b: type = pattern_type %Self.as_type.6f5 [symbolic] // CHECK:STDOUT: %K.lookup_impl_witness.a24: = lookup_impl_witness %Self.44d, @K [symbolic] // CHECK:STDOUT: %impl.elem0.c23: type = impl_witness_access %K.lookup_impl_witness.a24, element0 [symbolic] // CHECK:STDOUT: %pattern_type.9fa: type = pattern_type %impl.elem0.c23 [symbolic] @@ -3548,7 +3548,7 @@ fn F() { // CHECK:STDOUT: %.Self: %K.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %K.WithSelf.F.type.262: type = fn_type @K.WithSelf.F, @K.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %K.WithSelf.F.40c: %K.WithSelf.F.type.262 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %K.lookup_impl_witness.28c: = lookup_impl_witness %.Self, @K [symbolic_self] // CHECK:STDOUT: %impl.elem0.afd: type = impl_witness_access %K.lookup_impl_witness.28c, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %empty_tuple.type} [concrete] @@ -3595,8 +3595,8 @@ fn F() { // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [concrete = constants.%K.type] // CHECK:STDOUT: %.Self: %K.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %V.ref: %K.assoc_type = name_ref V, @V.%assoc0 [concrete = constants.%assoc0.6cb] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%K.lookup_impl_witness.28c, element0 [symbolic_self = constants.%impl.elem0.afd] // CHECK:STDOUT: %.loc11_31.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -3618,8 +3618,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.WithSelf.%V [concrete = constants.%assoc0.6cb] // CHECK:STDOUT: } // CHECK:STDOUT: %K.WithSelf.F.decl: @K.WithSelf.%K.WithSelf.F.type (%K.WithSelf.F.type.d74) = fn_decl @K.WithSelf.F [symbolic = @K.WithSelf.%K.WithSelf.F (constants.%K.WithSelf.F.f53)] { -// CHECK:STDOUT: %self.param_patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.bcd) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.bcd) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.c8b) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @K.WithSelf.F.%pattern_type.loc8_12 (%pattern_type.c8b) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %v.param_patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = value_param_pattern [concrete] // CHECK:STDOUT: %v.patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = at_binding_pattern v, %v.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @K.WithSelf.F.%pattern_type.loc8_21 (%pattern_type.9fa) = out_param_pattern [concrete] @@ -3628,13 +3628,13 @@ fn F() { // CHECK:STDOUT: %impl.elem0.loc8_29: type = impl_witness_access constants.%K.lookup_impl_witness.a24, element0 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] // CHECK:STDOUT: %V.ref.loc8_29: type = name_ref V, %impl.elem0.loc8_29 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] // CHECK:STDOUT: %.loc8_29.2: Core.Form = init_form %V.ref.loc8_29 [symbolic = %.loc8_29.1 (constants.%.c1a)] -// CHECK:STDOUT: %self.param: @K.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87a) = value_param call_param0 -// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87a)] { +// CHECK:STDOUT: %self.param: @K.WithSelf.F.%Self.as_type.loc8_14.1 (%Self.as_type.6f5) = value_param call_param0 +// CHECK:STDOUT: %.loc8_14.1: type = splice_block %.loc8_14.2 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.6f5)] { // CHECK:STDOUT: %Self.ref: %K.type = name_ref Self, @K.%Self [symbolic = %Self (constants.%Self.44d)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87a)] -// CHECK:STDOUT: %.loc8_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87a)] +// CHECK:STDOUT: %Self.as_type.loc8_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.6f5)] +// CHECK:STDOUT: %.loc8_14.2: type = converted %Self.ref, %Self.as_type.loc8_14.2 [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.6f5)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @K.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87a) = value_binding self, %self.param +// CHECK:STDOUT: %self: @K.WithSelf.F.%Self.as_type.loc8_14.1 (%Self.as_type.6f5) = value_binding self, %self.param // CHECK:STDOUT: %v.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23) = value_param call_param1 // CHECK:STDOUT: %.loc8_23: type = splice_block %V.ref.loc8_23 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] { // CHECK:STDOUT: %impl.elem0.loc8_23.2: type = impl_witness_access constants.%K.lookup_impl_witness.a24, element0 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] @@ -3709,14 +3709,14 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @K.WithSelf.F(@K.%Self: %K.type) { // CHECK:STDOUT: %Self: %K.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.44d)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.87a)] -// CHECK:STDOUT: %pattern_type.loc8_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc8_12 (constants.%pattern_type.bcd)] +// CHECK:STDOUT: %Self.as_type.loc8_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc8_14.1 (constants.%Self.as_type.6f5)] +// CHECK:STDOUT: %pattern_type.loc8_12: type = pattern_type %Self.as_type.loc8_14.1 [symbolic = %pattern_type.loc8_12 (constants.%pattern_type.c8b)] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %Self, @K [symbolic = %K.lookup_impl_witness (constants.%K.lookup_impl_witness.a24)] // CHECK:STDOUT: %impl.elem0.loc8_23.1: type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_23.1 (constants.%impl.elem0.c23)] // CHECK:STDOUT: %pattern_type.loc8_21: type = pattern_type %impl.elem0.loc8_23.1 [symbolic = %pattern_type.loc8_21 (constants.%pattern_type.9fa)] // CHECK:STDOUT: %.loc8_29.1: Core.Form = init_form %impl.elem0.loc8_23.1 [symbolic = %.loc8_29.1 (constants.%.c1a)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @K.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.87a), %v.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23)) -> out %return.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23); +// CHECK:STDOUT: fn(%self.param: @K.WithSelf.F.%Self.as_type.loc8_14.1 (%Self.as_type.6f5), %v.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23)) -> out %return.param: @K.WithSelf.F.%impl.elem0.loc8_23.1 (%impl.elem0.c23); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.K.impl.F.loc26_52.1(%self.param: %empty_tuple.type, %v.param: %struct_type.x) -> out %return.param: %struct_type.x { @@ -3758,8 +3758,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @K.WithSelf.F(constants.%Self.44d) { // CHECK:STDOUT: %Self => constants.%Self.44d -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.87a -// CHECK:STDOUT: %pattern_type.loc8_12 => constants.%pattern_type.bcd +// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%Self.as_type.6f5 +// CHECK:STDOUT: %pattern_type.loc8_12 => constants.%pattern_type.c8b // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.lookup_impl_witness.a24 // CHECK:STDOUT: %impl.elem0.loc8_23.1 => constants.%impl.elem0.c23 // CHECK:STDOUT: %pattern_type.loc8_21 => constants.%pattern_type.9fa @@ -3782,7 +3782,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @K.WithSelf.F(constants.%K.facet) { // CHECK:STDOUT: %Self => constants.%K.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc8_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc8_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %K.lookup_impl_witness => constants.%K.impl_witness // CHECK:STDOUT: %impl.elem0.loc8_23.1 => constants.%struct_type.a @@ -3810,7 +3810,7 @@ fn F() { // CHECK:STDOUT: %.Self: %M.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %M.WithSelf.G.type.a84: type = fn_type @M.WithSelf.G, @M.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %M.WithSelf.G.6c7: %M.WithSelf.G.type.a84 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %struct: %struct_type.b.347 = struct_value (%empty_struct) [concrete] @@ -3843,8 +3843,8 @@ fn F() { // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] // CHECK:STDOUT: %.Self: %M.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %struct_type.b.347 = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc8_32: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -3982,7 +3982,7 @@ fn F() { // CHECK:STDOUT: %.Self.b4d: %M.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %M.WithSelf.G.type.a84: type = fn_type @M.WithSelf.G, @M.WithSelf(%.Self.b4d) [symbolic_self] // CHECK:STDOUT: %M.WithSelf.G.6c7: %M.WithSelf.G.type.a84 = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.b4d [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.b4d [symbolic_self] // CHECK:STDOUT: %M.lookup_impl_witness: = lookup_impl_witness %.Self.b4d, @M [symbolic_self] // CHECK:STDOUT: %impl.elem0.47b: %struct_type.b.86f = impl_witness_access %M.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %struct_type.b.347: type = struct_type {.b: %empty_struct_type} [concrete] @@ -4054,8 +4054,8 @@ fn F() { // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] // CHECK:STDOUT: %.Self: %M.type = symbolic_binding .Self [symbolic_self = constants.%.Self.b4d] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0.ed2] // CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.47b] // CHECK:STDOUT: %.loc10_35: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -4076,8 +4076,8 @@ fn F() { // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] // CHECK:STDOUT: %.Self: %M.type = symbolic_binding .Self [symbolic_self = constants.%.Self.b4d] // CHECK:STDOUT: %.Self.ref: %M.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.b4d] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc16_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc16_23: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Z.ref: %M.assoc_type = name_ref Z, @Z.%assoc0 [concrete = constants.%assoc0.ed2] // CHECK:STDOUT: %impl.elem0: %struct_type.b.86f = impl_witness_access constants.%M.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0.47b] // CHECK:STDOUT: %.loc16_35: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -4270,8 +4270,8 @@ fn F() { // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0.d72: %I.assoc_type = assoc_entity element0, @I.WithSelf.%N [concrete] -// CHECK:STDOUT: %Self.binding.as_type.d31: type = symbolic_binding_type Self, 0, %Self.ab9 [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type.d31 [symbolic] +// CHECK:STDOUT: %Self.as_type.a26: type = facet_access_type %Self.ab9 [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type.a26 [symbolic] // CHECK:STDOUT: %Bool.type: type = fn_type @Bool [concrete] // CHECK:STDOUT: %Bool: %Bool.type = struct_value () [concrete] // CHECK:STDOUT: %I.lookup_impl_witness.3ae: = lookup_impl_witness %Self.ab9, @I [symbolic] @@ -4305,7 +4305,7 @@ fn F() { // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.type.29d: type = fn_type @I.WithSelf.F, @I.WithSelf(%.Self) [symbolic_self] // CHECK:STDOUT: %I.WithSelf.F.8ec: %I.WithSelf.F.type.29d = struct_value () [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness.c4b: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0.667: %i32 = impl_witness_access %I.lookup_impl_witness.c4b, element0 [symbolic_self] // CHECK:STDOUT: %int_2.ecc: Core.IntLiteral = int_value 2 [concrete] @@ -4385,8 +4385,8 @@ fn F() { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %N.ref: %I.assoc_type = name_ref N, @N.%assoc0 [concrete = constants.%assoc0.d72] // CHECK:STDOUT: %impl.elem0.loc8_20: %i32 = impl_witness_access constants.%I.lookup_impl_witness.c4b, element0 [symbolic_self = constants.%impl.elem0.667] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] @@ -4413,8 +4413,8 @@ fn F() { // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%N [concrete = constants.%assoc0.d72] // CHECK:STDOUT: } // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type.loc5_12 (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @I.WithSelf.F.%pattern_type.loc5_38 (%pattern_type.3e2) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @I.WithSelf.F.%pattern_type.loc5_38 (%pattern_type.3e2) = return_slot_pattern %return.param_patt, %array_type.loc5_38.2 [concrete] // CHECK:STDOUT: } { @@ -4430,13 +4430,13 @@ fn F() { // CHECK:STDOUT: %.loc5_37.2: Core.IntLiteral = converted %N.ref, %.loc5_37.1 [symbolic = %Int.as.ImplicitAs.impl.Convert.call.loc5_37.1 (constants.%Int.as.ImplicitAs.impl.Convert.call)] // CHECK:STDOUT: %array_type.loc5_38.2: type = array_type %.loc5_37.2, %.loc5_31 [symbolic = %array_type.loc5_38.1 (constants.%array_type.d35)] // CHECK:STDOUT: %.loc5_38.2: Core.Form = init_form %array_type.loc5_38.2 [symbolic = %.loc5_38.1 (constants.%.c07)] -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.a26) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.a26)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.a26)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.a26) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @I.WithSelf.F.%array_type.loc5_38.1 (%array_type.d35) = out_param call_param1 // CHECK:STDOUT: %return: ref @I.WithSelf.F.%array_type.loc5_38.1 (%array_type.d35) = return_slot %return.param // CHECK:STDOUT: } @@ -4479,8 +4479,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.ab9)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.d31)] -// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type.a26)] +// CHECK:STDOUT: %pattern_type.loc5_12: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type.loc5_12 (constants.%pattern_type.965)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %Self, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness.3ae)] // CHECK:STDOUT: %impl.elem0.loc5_37.1: %i32 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc5_37.1 (constants.%impl.elem0.f83)] // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound: = bound_method %impl.elem0.loc5_37.1, constants.%Int.as.ImplicitAs.impl.Convert.dd4 [symbolic = %Int.as.ImplicitAs.impl.Convert.bound (constants.%Int.as.ImplicitAs.impl.Convert.bound.0e7)] @@ -4490,7 +4490,7 @@ fn F() { // CHECK:STDOUT: %.loc5_38.1: Core.Form = init_form %array_type.loc5_38.1 [symbolic = %.loc5_38.1 (constants.%.c07)] // CHECK:STDOUT: %pattern_type.loc5_38: type = pattern_type %array_type.loc5_38.1 [symbolic = %pattern_type.loc5_38 (constants.%pattern_type.3e2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.d31)) -> out %return.param: @I.WithSelf.F.%array_type.loc5_38.1 (%array_type.d35); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type.a26)) -> out %return.param: @I.WithSelf.F.%array_type.loc5_38.1 (%array_type.d35); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.F(%self.param: %empty_tuple.type) -> out %return.param: %array_type.c9b { @@ -4524,8 +4524,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.ab9) { // CHECK:STDOUT: %Self => constants.%Self.ab9 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.d31 -// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.fa0 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type.a26 +// CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.965 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.lookup_impl_witness.3ae // CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%impl.elem0.f83 // CHECK:STDOUT: %Int.as.ImplicitAs.impl.Convert.bound => constants.%Int.as.ImplicitAs.impl.Convert.bound.0e7 @@ -4552,7 +4552,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type.loc5_12 => constants.%pattern_type.cb1 // CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness // CHECK:STDOUT: %impl.elem0.loc5_37.1 => constants.%int_2.ef8 @@ -4583,7 +4583,7 @@ fn F() { // CHECK:STDOUT: %complete_type.357: = complete_type_witness %empty_struct_type [concrete] // CHECK:STDOUT: %D: type = class_type @D [concrete] // CHECK:STDOUT: %.Self.aac: %Z.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.aac [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.aac [symbolic_self] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %.Self.aac, @Z [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %Z_where.type.ea1: type = facet_type <@Z where %impl.elem0 = %C.5a3> [symbolic] @@ -4643,8 +4643,8 @@ fn F() { // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %.Self.1: %Z.type = symbolic_binding .Self [symbolic_self = constants.%.Self.aac] // CHECK:STDOUT: %.Self.ref: %Z.type = name_ref .Self, %.Self.1 [symbolic_self = constants.%.Self.aac] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_37: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %X.ref: %Z.assoc_type = name_ref X, @X.%assoc0 [concrete = constants.%assoc0.cdf] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] diff --git a/toolchain/check/testdata/interface/as_type_of_type.carbon b/toolchain/check/testdata/interface/as_type_of_type.carbon index d08ff492d76a..d85ba62f935a 100644 --- a/toolchain/check/testdata/interface/as_type_of_type.carbon +++ b/toolchain/check/testdata/interface/as_type_of_type.carbon @@ -39,25 +39,25 @@ fn F(T:! Empty) { // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.e23: type = symbolic_binding_type T, 0, %T.0c3 [symbolic] -// CHECK:STDOUT: %ptr: type = ptr_type %T.binding.as_type.e23 [symbolic] -// CHECK:STDOUT: %require_complete.315: = require_complete_type %ptr [symbolic] -// CHECK:STDOUT: %pattern_type.fd9: type = pattern_type %ptr [symbolic] +// CHECK:STDOUT: %T.as_type.d6c: type = facet_access_type %T.0c3 [symbolic] +// CHECK:STDOUT: %ptr: type = ptr_type %T.as_type.d6c [symbolic] +// CHECK:STDOUT: %require_complete.279: = require_complete_type %ptr [symbolic] +// CHECK:STDOUT: %pattern_type.91f: type = pattern_type %ptr [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr, @DefaultOrUnformed [symbolic] -// CHECK:STDOUT: %.a5e: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] +// CHECK:STDOUT: %.218: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr) [symbolic] // CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %ptr, (%DefaultOrUnformed.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.478: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] -// CHECK:STDOUT: %.fb3: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.478, %DefaultOrUnformed.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.369: %.fb3 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.e86: = specific_impl_function %impl.elem0.369, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type.1a2: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet) [symbolic] +// CHECK:STDOUT: %.4c7: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type.1a2, %DefaultOrUnformed.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.00f: %.4c7 = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2bc: = specific_impl_function %impl.elem0.00f, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet) [symbolic] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr, @Destroy [symbolic] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr, (%Destroy.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.4bc: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] -// CHECK:STDOUT: %.40e: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.4bc, %Destroy.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.b68: %.40e = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a7f: = specific_impl_function %impl.elem0.b68, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.d94: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic] +// CHECK:STDOUT: %.987: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.d94, %Destroy.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.608: %.987 = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.2ba: = specific_impl_function %impl.elem0.608, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -127,49 +127,49 @@ fn F(T:! Empty) { // CHECK:STDOUT: %T.loc21_7.1: %Empty.type = symbolic_binding T, 0 [symbolic = %T.loc21_7.1 (constants.%T.0c3)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc21_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e23)] -// CHECK:STDOUT: %ptr.loc22_18.2: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc22_18.2 (constants.%ptr)] -// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc22_18.2 [symbolic = %require_complete (constants.%require_complete.315)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_18.2 [symbolic = %pattern_type (constants.%pattern_type.fd9)] -// CHECK:STDOUT: %.loc22_19.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc22_18.2) [symbolic = %.loc22_19.3 (constants.%.a5e)] +// CHECK:STDOUT: %T.as_type.loc22_18.2: type = facet_access_type %T.loc21_7.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.d6c)] +// CHECK:STDOUT: %ptr.loc22_18.2: type = ptr_type %T.as_type.loc22_18.2 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] +// CHECK:STDOUT: %require_complete: = require_complete_type %ptr.loc22_18.2 [symbolic = %require_complete (constants.%require_complete.279)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ptr.loc22_18.2 [symbolic = %pattern_type (constants.%pattern_type.91f)] +// CHECK:STDOUT: %.loc22_19.3: require_specific_def_type = require_specific_def @T.as.DefaultOrUnformed.impl(%ptr.loc22_18.2) [symbolic = %.loc22_19.3 (constants.%.218)] // CHECK:STDOUT: %DefaultOrUnformed.lookup_impl_witness: = lookup_impl_witness %ptr.loc22_18.2, @DefaultOrUnformed [symbolic = %DefaultOrUnformed.lookup_impl_witness (constants.%DefaultOrUnformed.lookup_impl_witness)] // CHECK:STDOUT: %DefaultOrUnformed.facet.loc22_19.2: %DefaultOrUnformed.type = facet_value %ptr.loc22_18.2, (%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] -// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.478)] -// CHECK:STDOUT: %.loc22_19.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc22_19.2 [symbolic = %.loc22_19.4 (constants.%.fb3)] -// CHECK:STDOUT: %impl.elem0.loc22_19.2: @F.%.loc22_19.4 (%.fb3) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.369)] -// CHECK:STDOUT: %specific_impl_fn.loc22_19.2: = specific_impl_function %impl.elem0.loc22_19.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.e86)] +// CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.type: type = fn_type @DefaultOrUnformed.WithSelf.Op, @DefaultOrUnformed.WithSelf(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %DefaultOrUnformed.WithSelf.Op.type (constants.%DefaultOrUnformed.WithSelf.Op.type.1a2)] +// CHECK:STDOUT: %.loc22_19.4: type = fn_type_with_self_type %DefaultOrUnformed.WithSelf.Op.type, %DefaultOrUnformed.facet.loc22_19.2 [symbolic = %.loc22_19.4 (constants.%.4c7)] +// CHECK:STDOUT: %impl.elem0.loc22_19.2: @F.%.loc22_19.4 (%.4c7) = impl_witness_access %DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.00f)] +// CHECK:STDOUT: %specific_impl_fn.loc22_19.2: = specific_impl_function %impl.elem0.loc22_19.2, @DefaultOrUnformed.WithSelf.Op(%DefaultOrUnformed.facet.loc22_19.2) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.2bc)] // CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %ptr.loc22_18.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] // CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %ptr.loc22_18.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.4bc)] -// CHECK:STDOUT: %.loc22_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_3 (constants.%.40e)] -// CHECK:STDOUT: %impl.elem0.loc22_3.2: @F.%.loc22_3 (%.40e) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.b68)] -// CHECK:STDOUT: %specific_impl_fn.loc22_3.2: = specific_impl_function %impl.elem0.loc22_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.a7f)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.d94)] +// CHECK:STDOUT: %.loc22_3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc22_3 (constants.%.987)] +// CHECK:STDOUT: %impl.elem0.loc22_3.2: @F.%.loc22_3 (%.987) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.608)] +// CHECK:STDOUT: %specific_impl_fn.loc22_3.2: = specific_impl_function %impl.elem0.loc22_3.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.2ba)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.fd9) = ref_binding_pattern x [concrete] -// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.fd9) = var_pattern %x.patt [concrete] +// CHECK:STDOUT: %x.patt: @F.%pattern_type (%pattern_type.91f) = ref_binding_pattern x [concrete] +// CHECK:STDOUT: %x.var_patt: @F.%pattern_type (%pattern_type.91f) = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref @F.%ptr.loc22_18.2 (%ptr) = var %x.var_patt // CHECK:STDOUT: %DefaultOrUnformed.facet.loc22_19.1: %DefaultOrUnformed.type = facet_value constants.%ptr, (constants.%DefaultOrUnformed.lookup_impl_witness) [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] // CHECK:STDOUT: %.loc22_19.1: %DefaultOrUnformed.type = converted constants.%ptr, %DefaultOrUnformed.facet.loc22_19.1 [symbolic = %DefaultOrUnformed.facet.loc22_19.2 (constants.%DefaultOrUnformed.facet)] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc22_19.1 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] // CHECK:STDOUT: %.loc22_19.2: type = converted %.loc22_19.1, %as_type [symbolic = %ptr.loc22_18.2 (constants.%ptr)] -// CHECK:STDOUT: %impl.elem0.loc22_19.1: @F.%.loc22_19.4 (%.fb3) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.369)] -// CHECK:STDOUT: %specific_impl_fn.loc22_19.1: = specific_impl_function %impl.elem0.loc22_19.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.e86)] +// CHECK:STDOUT: %impl.elem0.loc22_19.1: @F.%.loc22_19.4 (%.4c7) = impl_witness_access constants.%DefaultOrUnformed.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_19.2 (constants.%impl.elem0.00f)] +// CHECK:STDOUT: %specific_impl_fn.loc22_19.1: = specific_impl_function %impl.elem0.loc22_19.1, @DefaultOrUnformed.WithSelf.Op(constants.%DefaultOrUnformed.facet) [symbolic = %specific_impl_fn.loc22_19.2 (constants.%specific_impl_fn.2bc)] // CHECK:STDOUT: %DefaultOrUnformed.WithSelf.Op.call: init @F.%ptr.loc22_18.2 (%ptr) = call %specific_impl_fn.loc22_19.1() // CHECK:STDOUT: assign %x.var, %DefaultOrUnformed.WithSelf.Op.call // CHECK:STDOUT: %.loc22_18.1: type = splice_block %ptr.loc22_18.1 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] { // CHECK:STDOUT: %T.ref: %Empty.type = name_ref T, %T.loc21_7.2 [symbolic = %T.loc21_7.1 (constants.%T.0c3)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e23)] -// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.e23)] +// CHECK:STDOUT: %T.as_type.loc22_18.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.d6c)] +// CHECK:STDOUT: %.loc22_18.2: type = converted %T.ref, %T.as_type.loc22_18.1 [symbolic = %T.as_type.loc22_18.2 (constants.%T.as_type.d6c)] // CHECK:STDOUT: %ptr.loc22_18.1: type = ptr_type %.loc22_18.2 [symbolic = %ptr.loc22_18.2 (constants.%ptr)] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref @F.%ptr.loc22_18.2 (%ptr) = ref_binding x, %x.var -// CHECK:STDOUT: %impl.elem0.loc22_3.1: @F.%.loc22_3 (%.40e) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.b68)] +// CHECK:STDOUT: %impl.elem0.loc22_3.1: @F.%.loc22_3 (%.987) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_3.2 (constants.%impl.elem0.608)] // CHECK:STDOUT: %bound_method.loc22_3.1: = bound_method %x.var, %impl.elem0.loc22_3.1 -// CHECK:STDOUT: %specific_impl_fn.loc22_3.1: = specific_impl_function %impl.elem0.loc22_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.a7f)] +// CHECK:STDOUT: %specific_impl_fn.loc22_3.1: = specific_impl_function %impl.elem0.loc22_3.1, @Destroy.WithSelf.Op(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_3.2 (constants.%specific_impl_fn.2ba)] // CHECK:STDOUT: %bound_method.loc22_3.2: = bound_method %x.var, %specific_impl_fn.loc22_3.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc22_3.2(%x.var) // CHECK:STDOUT: return diff --git a/toolchain/check/testdata/interface/compound_member_access.carbon b/toolchain/check/testdata/interface/compound_member_access.carbon index 9238eea8bbbb..32f8bab02b2e 100644 --- a/toolchain/check/testdata/interface/compound_member_access.carbon +++ b/toolchain/check/testdata/interface/compound_member_access.carbon @@ -200,7 +200,7 @@ fn Works() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %J.lookup_impl_witness.264a02.1: = lookup_impl_witness %T, @J [symbolic] // CHECK:STDOUT: %impl.elem0.5607ef.1: type = impl_witness_access %J.lookup_impl_witness.264a02.1, element0 [symbolic] // CHECK:STDOUT: %pattern_type.ad6d12.1: type = pattern_type %impl.elem0.5607ef.1 [symbolic] @@ -244,8 +244,8 @@ fn Works() { // CHECK:STDOUT: %.loc8_31.1: type = splice_block %impl.elem0.loc8_31.2 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.5607ef.1)] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc8_13.2 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_31.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_31.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_31.2: type = converted %T.ref, %T.as_type.loc8_31.2 [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %U.ref: %J.assoc_type = name_ref U, @U.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8_31.2: type = impl_witness_access constants.%J.lookup_impl_witness.264a02.1, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.5607ef.1)] // CHECK:STDOUT: } @@ -290,7 +290,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple1(%T.loc8_13.2: %J.type, %S.loc8_27.2: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.5607ef.1)) { // CHECK:STDOUT: %T.loc8_13.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_13.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_31.1: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc8_31.1 (constants.%T.as_type)] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @J [symbolic = %J.lookup_impl_witness (constants.%J.lookup_impl_witness.264a02.1)] // CHECK:STDOUT: %impl.elem0.loc8_31.1: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_31.1 (constants.%impl.elem0.5607ef.1)] // CHECK:STDOUT: %S.loc8_27.1: @Simple1.%impl.elem0.loc8_31.1 (%impl.elem0.5607ef.1) = symbolic_binding S, 1 [symbolic = %S.loc8_27.1 (constants.%S)] @@ -329,7 +329,7 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple1(constants.%T, constants.%S) { // CHECK:STDOUT: %T.loc8_13.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc8_31.1 => constants.%T.as_type // CHECK:STDOUT: %J.lookup_impl_witness => constants.%J.lookup_impl_witness.264a02.1 // CHECK:STDOUT: %impl.elem0.loc8_31.1 => constants.%impl.elem0.5607ef.1 // CHECK:STDOUT: %S.loc8_27.1 => constants.%S @@ -366,7 +366,7 @@ fn Works() { // CHECK:STDOUT: %Simple2: %Simple2.type = struct_value () [concrete] // CHECK:STDOUT: %K1.WithSelf.Q1.type.0b941d.1: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T) [symbolic] // CHECK:STDOUT: %K1.WithSelf.Q1.2b1e8b.1: %K1.WithSelf.Q1.type.0b941d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %K1.lookup_impl_witness.962f78.1: = lookup_impl_witness %T, @K1 [symbolic] // CHECK:STDOUT: %.838067.1: type = fn_type_with_self_type %K1.WithSelf.Q1.type.0b941d.1, %T [symbolic] // CHECK:STDOUT: %impl.elem0.6aa105.1: %.838067.1 = impl_witness_access %K1.lookup_impl_witness.962f78.1, element0 [symbolic] @@ -442,7 +442,7 @@ fn Works() { // CHECK:STDOUT: %T.loc8_13.1: %K1.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_13.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_4.2: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %K1.WithSelf.Q1.type: type = fn_type @K1.WithSelf.Q1, @K1.WithSelf(%T.loc8_13.1) [symbolic = %K1.WithSelf.Q1.type (constants.%K1.WithSelf.Q1.type.0b941d.1)] // CHECK:STDOUT: %.loc9_4.2: type = fn_type_with_self_type %K1.WithSelf.Q1.type, %T.loc8_13.1 [symbolic = %.loc9_4.2 (constants.%.838067.1)] // CHECK:STDOUT: %K1.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @K1 [symbolic = %K1.lookup_impl_witness (constants.%K1.lookup_impl_witness.962f78.1)] @@ -452,8 +452,8 @@ fn Works() { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %K1.type = name_ref T, %T.loc8_13.2 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_4.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_4.1: type = converted %T.ref, %T.as_type.loc9_4.1 [symbolic = %T.as_type.loc9_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Q1.ref: %K1.assoc_type = name_ref Q1, @K1.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple2.%.loc9_4.2 (%.838067.1) = impl_witness_access constants.%K1.lookup_impl_witness.962f78.1, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0.6aa105.1)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K1.WithSelf.Q1(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn.c7d99a.1)] @@ -533,11 +533,11 @@ fn Works() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.8cb: type = pattern_type %K2.type [concrete] // CHECK:STDOUT: %T: %K2.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.6a7df6.1: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.60b33c.1: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Simple3.type: type = fn_type @Simple3 [concrete] // CHECK:STDOUT: %Simple3: %Simple3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.57854f.1: = require_complete_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.2575bd.1: = require_complete_type %T.as_type [symbolic] // CHECK:STDOUT: %K2.WithSelf.Q2.type.3af: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T) [symbolic] // CHECK:STDOUT: %K2.WithSelf.Q2.c9a: %K2.WithSelf.Q2.type.3af = struct_value () [symbolic] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T, @K2 [symbolic] @@ -545,11 +545,11 @@ fn Works() { // CHECK:STDOUT: %impl.elem0: %.02c = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @K2.WithSelf.Q2(%T) [symbolic] // CHECK:STDOUT: %V: %K2.type = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] -// CHECK:STDOUT: %pattern_type.6a7df6.2: type = pattern_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %pattern_type.60b33c.2: type = pattern_type %V.as_type [symbolic] // CHECK:STDOUT: %Compound3.type: type = fn_type @Compound3 [concrete] // CHECK:STDOUT: %Compound3: %Compound3.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.57854f.2: = require_complete_type %V.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete.2575bd.2: = require_complete_type %V.as_type [symbolic] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: } @@ -574,39 +574,39 @@ fn Works() { // CHECK:STDOUT: %K2.decl: type = interface_decl @K2 [concrete = constants.%K2.type] {} {} // CHECK:STDOUT: %Simple3.decl: %Simple3.type = fn_decl @Simple3 [concrete = constants.%Simple3] { // CHECK:STDOUT: %T.patt: %pattern_type.8cb = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.6a7df6.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple3.%pattern_type (%pattern_type.60b33c.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple3.%pattern_type (%pattern_type.60b33c.1) = at_binding_pattern x, %x.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc8_16: type = splice_block %K2.ref [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %K2.ref: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc8_13.2: %K2.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Simple3.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc8_23.1: type = splice_block %.loc8_23.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc8_23.1: type = splice_block %.loc8_23.2 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref: %K2.type = name_ref T, %T.loc8_13.2 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc8_23.2: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc8_23.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc8_23.2: type = converted %T.ref, %T.as_type.loc8_23.2 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Simple3.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %x: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = value_binding x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound3.decl: %Compound3.type = fn_decl @Compound3 [concrete = constants.%Compound3] { // CHECK:STDOUT: %V.patt: %pattern_type.8cb = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.6a7df6.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound3.%pattern_type (%pattern_type.60b33c.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound3.%pattern_type (%pattern_type.60b33c.2) = at_binding_pattern y, %y.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc14_18: type = splice_block %K2.ref.loc14 [concrete = constants.%K2.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %K2.ref.loc14: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc14_15.2: %K2.type = symbolic_binding V, 0 [symbolic = %V.loc14_15.1 (constants.%V)] -// CHECK:STDOUT: %y.param: @Compound3.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_25.1: type = splice_block %.loc14_25.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { +// CHECK:STDOUT: %y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_25.1: type = splice_block %.loc14_25.2 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] { // CHECK:STDOUT: %V.ref: %K2.type = name_ref V, %V.loc14_15.2 [symbolic = %V.loc14_15.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type: type = facet_access_type %V.ref [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc14_25.2: type = converted %V.ref, %V.as_type [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %V.as_type.loc14_25.2: type = facet_access_type %V.ref [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc14_25.2: type = converted %V.ref, %V.as_type.loc14_25.2 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @Compound3.%V.binding.as_type (%V.binding.as_type) = value_binding y, %y.param +// CHECK:STDOUT: %y: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = value_binding y, %y.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -632,20 +632,20 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple3(%T.loc8_13.2: %K2.type) { // CHECK:STDOUT: %T.loc8_13.1: %K2.type = symbolic_binding T, 0 [symbolic = %T.loc8_13.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_13.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %T.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.6a7df6.1)] +// CHECK:STDOUT: %T.as_type.loc8_23.1: type = facet_access_type %T.loc8_13.1 [symbolic = %T.as_type.loc8_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %T.as_type.loc8_23.1 [symbolic = %pattern_type (constants.%pattern_type.60b33c.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %T.binding.as_type [symbolic = %require_complete (constants.%require_complete.57854f.1)] +// CHECK:STDOUT: %require_complete: = require_complete_type %T.as_type.loc8_23.1 [symbolic = %require_complete (constants.%require_complete.2575bd.1)] // CHECK:STDOUT: %K2.WithSelf.Q2.type: type = fn_type @K2.WithSelf.Q2, @K2.WithSelf(%T.loc8_13.1) [symbolic = %K2.WithSelf.Q2.type (constants.%K2.WithSelf.Q2.type.3af)] // CHECK:STDOUT: %.loc9: type = fn_type_with_self_type %K2.WithSelf.Q2.type, %T.loc8_13.1 [symbolic = %.loc9 (constants.%.02c)] // CHECK:STDOUT: %K2.lookup_impl_witness: = lookup_impl_witness %T.loc8_13.1, @K2 [symbolic = %K2.lookup_impl_witness (constants.%K2.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc9_4.2: @Simple3.%.loc9 (%.02c) = impl_witness_access %K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.2: = specific_impl_function %impl.elem0.loc9_4.2, @K2.WithSelf.Q2(%T.loc8_13.1) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple3.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%x.param: @Simple3.%T.as_type.loc8_23.1 (%T.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Simple3.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Simple3.%T.as_type.loc8_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.5ff] // CHECK:STDOUT: %impl.elem0.loc9_4.1: @Simple3.%.loc9 (%.02c) = impl_witness_access constants.%K2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc9_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc9_4.1: = specific_impl_function %impl.elem0.loc9_4.1, @K2.WithSelf.Q2(constants.%T) [symbolic = %specific_impl_fn.loc9_4.2 (constants.%specific_impl_fn)] @@ -656,15 +656,15 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Compound3(%V.loc14_15.2: %K2.type) { // CHECK:STDOUT: %V.loc14_15.1: %K2.type = symbolic_binding V, 0 [symbolic = %V.loc14_15.1 (constants.%V)] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc14_15.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %V.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.6a7df6.2)] +// CHECK:STDOUT: %V.as_type.loc14_25.1: type = facet_access_type %V.loc14_15.1 [symbolic = %V.as_type.loc14_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %V.as_type.loc14_25.1 [symbolic = %pattern_type (constants.%pattern_type.60b33c.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %V.binding.as_type [symbolic = %require_complete (constants.%require_complete.57854f.2)] +// CHECK:STDOUT: %require_complete: = require_complete_type %V.as_type.loc14_25.1 [symbolic = %require_complete (constants.%require_complete.2575bd.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound3.%V.binding.as_type (%V.binding.as_type)) { +// CHECK:STDOUT: fn(%y.param: @Compound3.%V.as_type.loc14_25.1 (%V.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref: @Compound3.%V.binding.as_type (%V.binding.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @Compound3.%V.as_type.loc14_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %K2.ref.loc22: type = name_ref K2, file.%K2.decl [concrete = constants.%K2.type] // CHECK:STDOUT: %Q2.ref: %K2.assoc_type = name_ref Q2, @K2.WithSelf.%assoc0 [concrete = constants.%assoc0.5ff] // CHECK:STDOUT: %.loc22: %K2.type = converted %y.ref, [concrete = ] @@ -683,8 +683,8 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple3(constants.%T) { // CHECK:STDOUT: %T.loc8_13.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6a7df6.1 +// CHECK:STDOUT: %T.as_type.loc8_23.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.60b33c.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @K2.WithSelf(constants.%T) { @@ -698,8 +698,8 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound3(constants.%V) { // CHECK:STDOUT: %V.loc14_15.1 => constants.%V -// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.6a7df6.2 +// CHECK:STDOUT: %V.as_type.loc14_25.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.60b33c.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- instance.carbon @@ -707,8 +707,8 @@ fn Works() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %L1.type: type = facet_type <@L1> [concrete] // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.9c1: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.d2c: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %L1.WithSelf.R1.type.504: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %L1.WithSelf.R1.aa4: %L1.WithSelf.R1.type.504 = struct_value () [symbolic] @@ -721,14 +721,14 @@ fn Works() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.a5c: type = pattern_type %L1.type [concrete] // CHECK:STDOUT: %T: %L1.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.352a62.1: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %ptr.6c1f8e.1: type = ptr_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.740d56.1: type = pattern_type %ptr.6c1f8e.1 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.ac8ca9.1: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %ptr.a69b4f.1: type = ptr_type %T.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.fd7d61.1: type = pattern_type %ptr.a69b4f.1 [symbolic] // CHECK:STDOUT: %Simple4.type: type = fn_type @Simple4 [concrete] // CHECK:STDOUT: %Simple4: %Simple4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.592d00.1: = require_complete_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %require_complete.94a5f1.1: = require_complete_type %ptr.6c1f8e.1 [symbolic] +// CHECK:STDOUT: %require_complete.bca5ad.1: = require_complete_type %T.as_type [symbolic] +// CHECK:STDOUT: %require_complete.a7a0e8.1: = require_complete_type %ptr.a69b4f.1 [symbolic] // CHECK:STDOUT: %L1.WithSelf.R1.type.0d7469.1: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T) [symbolic] // CHECK:STDOUT: %L1.WithSelf.R1.f22128.1: %L1.WithSelf.R1.type.0d7469.1 = struct_value () [symbolic] // CHECK:STDOUT: %L1.WithSelf.S1.type.79e6b4.1: type = fn_type @L1.WithSelf.S1, @L1.WithSelf(%T) [symbolic] @@ -741,14 +741,14 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.e3fe4c.1: %.917578.1 = impl_witness_access %L1.lookup_impl_witness.297fbf.1, element1 [symbolic] // CHECK:STDOUT: %specific_impl_fn.2cc093.1: = specific_impl_function %impl.elem1.e3fe4c.1, @L1.WithSelf.S1(%T) [symbolic] // CHECK:STDOUT: %V: %L1.type = symbolic_binding V, 0 [symbolic] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V [symbolic] -// CHECK:STDOUT: %pattern_type.352a62.2: type = pattern_type %V.binding.as_type [symbolic] -// CHECK:STDOUT: %ptr.6c1f8e.2: type = ptr_type %V.binding.as_type [symbolic] -// CHECK:STDOUT: %pattern_type.740d56.2: type = pattern_type %ptr.6c1f8e.2 [symbolic] +// CHECK:STDOUT: %V.as_type: type = facet_access_type %V [symbolic] +// CHECK:STDOUT: %pattern_type.ac8ca9.2: type = pattern_type %V.as_type [symbolic] +// CHECK:STDOUT: %ptr.a69b4f.2: type = ptr_type %V.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.fd7d61.2: type = pattern_type %ptr.a69b4f.2 [symbolic] // CHECK:STDOUT: %Compound4.type: type = fn_type @Compound4 [concrete] // CHECK:STDOUT: %Compound4: %Compound4.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete.592d00.2: = require_complete_type %V.binding.as_type [symbolic] -// CHECK:STDOUT: %require_complete.94a5f1.2: = require_complete_type %ptr.6c1f8e.2 [symbolic] +// CHECK:STDOUT: %require_complete.bca5ad.2: = require_complete_type %V.as_type [symbolic] +// CHECK:STDOUT: %require_complete.a7a0e8.2: = require_complete_type %ptr.a69b4f.2 [symbolic] // CHECK:STDOUT: %L1.lookup_impl_witness.297fbf.2: = lookup_impl_witness %V, @L1 [symbolic] // CHECK:STDOUT: %L1.WithSelf.R1.type.0d7469.2: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V) [symbolic] // CHECK:STDOUT: %L1.WithSelf.R1.f22128.2: %L1.WithSelf.R1.type.0d7469.2 = struct_value () [symbolic] @@ -780,59 +780,59 @@ fn Works() { // CHECK:STDOUT: %L1.decl: type = interface_decl @L1 [concrete = constants.%L1.type] {} {} // CHECK:STDOUT: %Simple4.decl: %Simple4.type = fn_decl @Simple4 [concrete = constants.%Simple4] { // CHECK:STDOUT: %T.patt: %pattern_type.a5c = symbolic_binding_pattern T, 0 [concrete] -// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.352a62.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.352a62.1) = at_binding_pattern x, %x.param_patt [concrete] -// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.740d56.1) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.740d56.1) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %x.param_patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.ac8ca9.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %x.patt: @Simple4.%pattern_type.loc9_21 (%pattern_type.ac8ca9.1) = at_binding_pattern x, %x.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.fd7d61.1) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Simple4.%pattern_type.loc9_27 (%pattern_type.fd7d61.1) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_16: type = splice_block %L1.ref [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %L1.ref: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: } // CHECK:STDOUT: %T.loc9_13.2: %L1.type = symbolic_binding T, 0 [symbolic = %T.loc9_13.1 (constants.%T)] -// CHECK:STDOUT: %x.param: @Simple4.%T.binding.as_type (%T.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] { +// CHECK:STDOUT: %x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_23.1: type = splice_block %.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] { // CHECK:STDOUT: %T.ref.loc9_23: %L1.type = name_ref T, %T.loc9_13.2 [symbolic = %T.loc9_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_23: type = facet_access_type %T.ref.loc9_23 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref.loc9_23, %T.as_type.loc9_23 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc9_23.2: type = facet_access_type %T.ref.loc9_23 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_23.2: type = converted %T.ref.loc9_23, %T.as_type.loc9_23.2 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %x: @Simple4.%T.binding.as_type (%T.binding.as_type) = value_binding x, %x.param -// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.6c1f8e.1) = value_param call_param1 -// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.6c1f8e.1)] { +// CHECK:STDOUT: %x: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = value_binding x, %x.param +// CHECK:STDOUT: %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.a69b4f.1) = value_param call_param1 +// CHECK:STDOUT: %.loc9_30.1: type = splice_block %ptr.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.a69b4f.1)] { // CHECK:STDOUT: %T.ref.loc9_29: %L1.type = name_ref T, %T.loc9_13.2 [symbolic = %T.loc9_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc9_30: type = facet_access_type %T.ref.loc9_29 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc9_30.2: type = converted %T.ref.loc9_29, %T.as_type.loc9_30 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %ptr.loc9_30.2: type = ptr_type %.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.6c1f8e.1)] +// CHECK:STDOUT: %T.as_type.loc9_30: type = facet_access_type %T.ref.loc9_29 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc9_30.2: type = converted %T.ref.loc9_29, %T.as_type.loc9_30 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %ptr.loc9_30.2: type = ptr_type %.loc9_30.2 [symbolic = %ptr.loc9_30.1 (constants.%ptr.a69b4f.1)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.6c1f8e.1) = value_binding p, %p.param +// CHECK:STDOUT: %p: @Simple4.%ptr.loc9_30.1 (%ptr.a69b4f.1) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: %Compound4.decl: %Compound4.type = fn_decl @Compound4 [concrete = constants.%Compound4] { // CHECK:STDOUT: %V.patt: %pattern_type.a5c = symbolic_binding_pattern V, 0 [concrete] -// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.352a62.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.352a62.2) = at_binding_pattern y, %y.param_patt [concrete] -// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.740d56.2) = value_param_pattern [concrete] -// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.740d56.2) = at_binding_pattern p, %p.param_patt [concrete] +// CHECK:STDOUT: %y.param_patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.ac8ca9.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %y.patt: @Compound4.%pattern_type.loc15_23 (%pattern_type.ac8ca9.2) = at_binding_pattern y, %y.param_patt [concrete] +// CHECK:STDOUT: %p.param_patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.fd7d61.2) = value_param_pattern [concrete] +// CHECK:STDOUT: %p.patt: @Compound4.%pattern_type.loc15_29 (%pattern_type.fd7d61.2) = at_binding_pattern p, %p.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc15_18: type = splice_block %L1.ref.loc15 [concrete = constants.%L1.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %L1.ref.loc15: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: } // CHECK:STDOUT: %V.loc15_15.2: %L1.type = symbolic_binding V, 0 [symbolic = %V.loc15_15.1 (constants.%V)] -// CHECK:STDOUT: %y.param: @Compound4.%V.binding.as_type (%V.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc15_25.1: type = splice_block %.loc15_25.2 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] { +// CHECK:STDOUT: %y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc15_25.1: type = splice_block %.loc15_25.2 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] { // CHECK:STDOUT: %V.ref.loc15_25: %L1.type = name_ref V, %V.loc15_15.2 [symbolic = %V.loc15_15.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc15_25: type = facet_access_type %V.ref.loc15_25 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc15_25.2: type = converted %V.ref.loc15_25, %V.as_type.loc15_25 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] +// CHECK:STDOUT: %V.as_type.loc15_25.2: type = facet_access_type %V.ref.loc15_25 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc15_25.2: type = converted %V.ref.loc15_25, %V.as_type.loc15_25.2 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %y: @Compound4.%V.binding.as_type (%V.binding.as_type) = value_binding y, %y.param -// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.6c1f8e.2) = value_param call_param1 -// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.6c1f8e.2)] { +// CHECK:STDOUT: %y: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = value_binding y, %y.param +// CHECK:STDOUT: %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.a69b4f.2) = value_param call_param1 +// CHECK:STDOUT: %.loc15_32.1: type = splice_block %ptr.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.a69b4f.2)] { // CHECK:STDOUT: %V.ref.loc15_31: %L1.type = name_ref V, %V.loc15_15.2 [symbolic = %V.loc15_15.1 (constants.%V)] -// CHECK:STDOUT: %V.as_type.loc15_32: type = facet_access_type %V.ref.loc15_31 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %.loc15_32.2: type = converted %V.ref.loc15_31, %V.as_type.loc15_32 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %ptr.loc15_32.2: type = ptr_type %.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.6c1f8e.2)] +// CHECK:STDOUT: %V.as_type.loc15_32: type = facet_access_type %V.ref.loc15_31 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %.loc15_32.2: type = converted %V.ref.loc15_31, %V.as_type.loc15_32 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %ptr.loc15_32.2: type = ptr_type %.loc15_32.2 [symbolic = %ptr.loc15_32.1 (constants.%ptr.a69b4f.2)] // CHECK:STDOUT: } -// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.6c1f8e.2) = value_binding p, %p.param +// CHECK:STDOUT: %p: @Compound4.%ptr.loc15_32.1 (%ptr.a69b4f.2) = value_binding p, %p.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -842,29 +842,29 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %L1.WithSelf.R1.decl: @L1.WithSelf.%L1.WithSelf.R1.type (%L1.WithSelf.R1.type.504) = fn_decl @L1.WithSelf.R1 [symbolic = @L1.WithSelf.%L1.WithSelf.R1 (constants.%L1.WithSelf.R1.aa4)] { -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.9c1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.d2c) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.R1.%pattern_type (%pattern_type.d2c) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L1.WithSelf.R1.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc4_15.1: type = splice_block %.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc4_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc4_15.2: type = converted %Self.ref, %Self.as_type.loc4_15.2 [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @L1.WithSelf.R1.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L1.assoc_type = assoc_entity element0, %L1.WithSelf.R1.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L1.WithSelf.S1.decl: @L1.WithSelf.%L1.WithSelf.S1.type (%L1.WithSelf.S1.type.e03) = fn_decl @L1.WithSelf.S1 [symbolic = @L1.WithSelf.%L1.WithSelf.S1 (constants.%L1.WithSelf.S1.480)] { -// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.9c1) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.d2c) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L1.WithSelf.S1.%pattern_type (%pattern_type.d2c) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: ref @L1.WithSelf.S1.%Self.binding.as_type (%Self.binding.as_type) = ref_param call_param0 -// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: ref @L1.WithSelf.S1.%Self.as_type.loc5_19.1 (%Self.as_type) = ref_param call_param0 +// CHECK:STDOUT: %.loc5_19.1: type = splice_block %.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %L1.type = name_ref Self, @L1.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_19.2: type = converted %Self.ref, %Self.as_type.loc5_19.2 [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: ref @L1.WithSelf.S1.%Self.binding.as_type (%Self.binding.as_type) = ref_binding self, %self.param +// CHECK:STDOUT: %self: ref @L1.WithSelf.S1.%Self.as_type.loc5_19.1 (%Self.as_type) = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L1.assoc_type = assoc_entity element1, %L1.WithSelf.S1.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -879,30 +879,30 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L1.WithSelf.R1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9c1)] +// CHECK:STDOUT: %Self.as_type.loc4_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc4_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc4_15.1 [symbolic = %pattern_type (constants.%pattern_type.d2c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L1.WithSelf.R1.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @L1.WithSelf.R1.%Self.as_type.loc4_15.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L1.WithSelf.S1(@L1.%Self: %L1.type) { // CHECK:STDOUT: %Self: %L1.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.9c1)] +// CHECK:STDOUT: %Self.as_type.loc5_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_19.1 [symbolic = %pattern_type (constants.%pattern_type.d2c)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @L1.WithSelf.S1.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: ref @L1.WithSelf.S1.%Self.as_type.loc5_19.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple4(%T.loc9_13.2: %L1.type) { // CHECK:STDOUT: %T.loc9_13.1: %L1.type = symbolic_binding T, 0 [symbolic = %T.loc9_13.1 (constants.%T)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_13.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.binding.as_type [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.352a62.1)] -// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.binding.as_type [symbolic = %ptr.loc9_30.1 (constants.%ptr.6c1f8e.1)] -// CHECK:STDOUT: %pattern_type.loc9_27: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_27 (constants.%pattern_type.740d56.1)] +// CHECK:STDOUT: %T.as_type.loc9_23.1: type = facet_access_type %T.loc9_13.1 [symbolic = %T.as_type.loc9_23.1 (constants.%T.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_21: type = pattern_type %T.as_type.loc9_23.1 [symbolic = %pattern_type.loc9_21 (constants.%pattern_type.ac8ca9.1)] +// CHECK:STDOUT: %ptr.loc9_30.1: type = ptr_type %T.as_type.loc9_23.1 [symbolic = %ptr.loc9_30.1 (constants.%ptr.a69b4f.1)] +// CHECK:STDOUT: %pattern_type.loc9_27: type = pattern_type %ptr.loc9_30.1 [symbolic = %pattern_type.loc9_27 (constants.%pattern_type.fd7d61.1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.binding.as_type [symbolic = %require_complete.loc9_21 (constants.%require_complete.592d00.1)] -// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.94a5f1.1)] +// CHECK:STDOUT: %require_complete.loc9_21: = require_complete_type %T.as_type.loc9_23.1 [symbolic = %require_complete.loc9_21 (constants.%require_complete.bca5ad.1)] +// CHECK:STDOUT: %require_complete.loc9_27: = require_complete_type %ptr.loc9_30.1 [symbolic = %require_complete.loc9_27 (constants.%require_complete.a7a0e8.1)] // CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%T.loc9_13.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.0d7469.1)] // CHECK:STDOUT: %.loc10: type = fn_type_with_self_type %L1.WithSelf.R1.type, %T.loc9_13.1 [symbolic = %.loc10 (constants.%.69b631.1)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %T.loc9_13.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.297fbf.1)] @@ -913,17 +913,17 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.loc11_4.2: @Simple4.%.loc11_4.2 (%.917578.1) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.e3fe4c.1)] // CHECK:STDOUT: %specific_impl_fn.loc11_4.2: = specific_impl_function %impl.elem1.loc11_4.2, @L1.WithSelf.S1(%T.loc9_13.1) [symbolic = %specific_impl_fn.loc11_4.2 (constants.%specific_impl_fn.2cc093.1)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%x.param: @Simple4.%T.binding.as_type (%T.binding.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.6c1f8e.1)) { +// CHECK:STDOUT: fn(%x.param: @Simple4.%T.as_type.loc9_23.1 (%T.as_type), %p.param: @Simple4.%ptr.loc9_30.1 (%ptr.a69b4f.1)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: @Simple4.%T.binding.as_type (%T.binding.as_type) = name_ref x, %x +// CHECK:STDOUT: %x.ref: @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = name_ref x, %x // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc10_4.1: @Simple4.%.loc10 (%.69b631.1) = impl_witness_access constants.%L1.lookup_impl_witness.297fbf.1, element0 [symbolic = %impl.elem0.loc10_4.2 (constants.%impl.elem0.60b493.1)] // CHECK:STDOUT: %bound_method.loc10_4: = bound_method %x.ref, %impl.elem0.loc10_4.1 // CHECK:STDOUT: %specific_impl_fn.loc10_4.1: = specific_impl_function %impl.elem0.loc10_4.1, @L1.WithSelf.R1(constants.%T) [symbolic = %specific_impl_fn.loc10_4.2 (constants.%specific_impl_fn.f023e9.1)] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %x.ref, %specific_impl_fn.loc10_4.1 // CHECK:STDOUT: %L1.WithSelf.R1.call: init %empty_tuple.type = call %bound_method.loc10_8(%x.ref) -// CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.6c1f8e.1) = name_ref p, %p -// CHECK:STDOUT: %.loc11_4.1: ref @Simple4.%T.binding.as_type (%T.binding.as_type) = deref %p.ref +// CHECK:STDOUT: %p.ref: @Simple4.%ptr.loc9_30.1 (%ptr.a69b4f.1) = name_ref p, %p +// CHECK:STDOUT: %.loc11_4.1: ref @Simple4.%T.as_type.loc9_23.1 (%T.as_type) = deref %p.ref // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc11_4.1: @Simple4.%.loc11_4.2 (%.917578.1) = impl_witness_access constants.%L1.lookup_impl_witness.297fbf.1, element1 [symbolic = %impl.elem1.loc11_4.2 (constants.%impl.elem1.e3fe4c.1)] // CHECK:STDOUT: %bound_method.loc11_4: = bound_method %.loc11_4.1, %impl.elem1.loc11_4.1 @@ -936,14 +936,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Compound4(%V.loc15_15.2: %L1.type) { // CHECK:STDOUT: %V.loc15_15.1: %L1.type = symbolic_binding V, 0 [symbolic = %V.loc15_15.1 (constants.%V)] -// CHECK:STDOUT: %V.binding.as_type: type = symbolic_binding_type V, 0, %V.loc15_15.1 [symbolic = %V.binding.as_type (constants.%V.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc15_23: type = pattern_type %V.binding.as_type [symbolic = %pattern_type.loc15_23 (constants.%pattern_type.352a62.2)] -// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.binding.as_type [symbolic = %ptr.loc15_32.1 (constants.%ptr.6c1f8e.2)] -// CHECK:STDOUT: %pattern_type.loc15_29: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_29 (constants.%pattern_type.740d56.2)] +// CHECK:STDOUT: %V.as_type.loc15_25.1: type = facet_access_type %V.loc15_15.1 [symbolic = %V.as_type.loc15_25.1 (constants.%V.as_type)] +// CHECK:STDOUT: %pattern_type.loc15_23: type = pattern_type %V.as_type.loc15_25.1 [symbolic = %pattern_type.loc15_23 (constants.%pattern_type.ac8ca9.2)] +// CHECK:STDOUT: %ptr.loc15_32.1: type = ptr_type %V.as_type.loc15_25.1 [symbolic = %ptr.loc15_32.1 (constants.%ptr.a69b4f.2)] +// CHECK:STDOUT: %pattern_type.loc15_29: type = pattern_type %ptr.loc15_32.1 [symbolic = %pattern_type.loc15_29 (constants.%pattern_type.fd7d61.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.binding.as_type [symbolic = %require_complete.loc15_23 (constants.%require_complete.592d00.2)] -// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.94a5f1.2)] +// CHECK:STDOUT: %require_complete.loc15_23: = require_complete_type %V.as_type.loc15_25.1 [symbolic = %require_complete.loc15_23 (constants.%require_complete.bca5ad.2)] +// CHECK:STDOUT: %require_complete.loc15_29: = require_complete_type %ptr.loc15_32.1 [symbolic = %require_complete.loc15_29 (constants.%require_complete.a7a0e8.2)] // CHECK:STDOUT: %L1.WithSelf.R1.type: type = fn_type @L1.WithSelf.R1, @L1.WithSelf(%V.loc15_15.1) [symbolic = %L1.WithSelf.R1.type (constants.%L1.WithSelf.R1.type.0d7469.2)] // CHECK:STDOUT: %.loc16: type = fn_type_with_self_type %L1.WithSelf.R1.type, %V.loc15_15.1 [symbolic = %.loc16 (constants.%.69b631.2)] // CHECK:STDOUT: %L1.lookup_impl_witness: = lookup_impl_witness %V.loc15_15.1, @L1 [symbolic = %L1.lookup_impl_witness (constants.%L1.lookup_impl_witness.297fbf.2)] @@ -954,9 +954,9 @@ fn Works() { // CHECK:STDOUT: %impl.elem1.loc17_4.2: @Compound4.%.loc17_4.2 (%.917578.2) = impl_witness_access %L1.lookup_impl_witness, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.e3fe4c.2)] // CHECK:STDOUT: %specific_impl_fn.loc17_4.2: = specific_impl_function %impl.elem1.loc17_4.2, @L1.WithSelf.S1(%V.loc15_15.1) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.2cc093.2)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%y.param: @Compound4.%V.binding.as_type (%V.binding.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.6c1f8e.2)) { +// CHECK:STDOUT: fn(%y.param: @Compound4.%V.as_type.loc15_25.1 (%V.as_type), %p.param: @Compound4.%ptr.loc15_32.1 (%ptr.a69b4f.2)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %y.ref: @Compound4.%V.binding.as_type (%V.binding.as_type) = name_ref y, %y +// CHECK:STDOUT: %y.ref: @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = name_ref y, %y // CHECK:STDOUT: %L1.ref.loc16: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %R1.ref: %L1.assoc_type = name_ref R1, @L1.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc16_4.1: @Compound4.%.loc16 (%.69b631.2) = impl_witness_access constants.%L1.lookup_impl_witness.297fbf.2, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.60b493.2)] @@ -964,10 +964,10 @@ fn Works() { // CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @L1.WithSelf.R1(constants.%V) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.f023e9.2)] // CHECK:STDOUT: %bound_method.loc16_13: = bound_method %y.ref, %specific_impl_fn.loc16_4.1 // CHECK:STDOUT: %L1.WithSelf.R1.call: init %empty_tuple.type = call %bound_method.loc16_13(%y.ref) -// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.6c1f8e.2) = name_ref p, %p +// CHECK:STDOUT: %p.ref: @Compound4.%ptr.loc15_32.1 (%ptr.a69b4f.2) = name_ref p, %p // CHECK:STDOUT: %L1.ref.loc17: type = name_ref L1, file.%L1.decl [concrete = constants.%L1.type] // CHECK:STDOUT: %S1.ref: %L1.assoc_type = name_ref S1, @L1.WithSelf.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.binding.as_type (%V.binding.as_type) = deref %p.ref +// CHECK:STDOUT: %.loc17_4.1: ref @Compound4.%V.as_type.loc15_25.1 (%V.as_type) = deref %p.ref // CHECK:STDOUT: %impl.elem1.loc17_4.1: @Compound4.%.loc17_4.2 (%.917578.2) = impl_witness_access constants.%L1.lookup_impl_witness.297fbf.2, element1 [symbolic = %impl.elem1.loc17_4.2 (constants.%impl.elem1.e3fe4c.2)] // CHECK:STDOUT: %bound_method.loc17_4: = bound_method %.loc17_4.1, %impl.elem1.loc17_4.1 // CHECK:STDOUT: %specific_impl_fn.loc17_4.1: = specific_impl_function %impl.elem1.loc17_4.1, @L1.WithSelf.S1(constants.%V) [symbolic = %specific_impl_fn.loc17_4.2 (constants.%specific_impl_fn.2cc093.2)] @@ -988,22 +988,22 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9c1 +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d2c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.9c1 +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.d2c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple4(constants.%T) { // CHECK:STDOUT: %T.loc9_13.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.352a62.1 -// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.6c1f8e.1 -// CHECK:STDOUT: %pattern_type.loc9_27 => constants.%pattern_type.740d56.1 +// CHECK:STDOUT: %T.as_type.loc9_23.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type.loc9_21 => constants.%pattern_type.ac8ca9.1 +// CHECK:STDOUT: %ptr.loc9_30.1 => constants.%ptr.a69b4f.1 +// CHECK:STDOUT: %pattern_type.loc9_27 => constants.%pattern_type.fd7d61.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%T) { @@ -1017,22 +1017,22 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.352a62.1 +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac8ca9.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.352a62.1 +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac8ca9.1 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound4(constants.%V) { // CHECK:STDOUT: %V.loc15_15.1 => constants.%V -// CHECK:STDOUT: %V.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type.loc15_23 => constants.%pattern_type.352a62.2 -// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.6c1f8e.2 -// CHECK:STDOUT: %pattern_type.loc15_29 => constants.%pattern_type.740d56.2 +// CHECK:STDOUT: %V.as_type.loc15_25.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type.loc15_23 => constants.%pattern_type.ac8ca9.2 +// CHECK:STDOUT: %ptr.loc15_32.1 => constants.%ptr.a69b4f.2 +// CHECK:STDOUT: %pattern_type.loc15_29 => constants.%pattern_type.fd7d61.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf(constants.%V) { @@ -1046,14 +1046,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.R1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %Self.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.352a62.2 +// CHECK:STDOUT: %Self.as_type.loc4_15.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac8ca9.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L1.WithSelf.S1(constants.%V) { // CHECK:STDOUT: %Self => constants.%V -// CHECK:STDOUT: %Self.binding.as_type => constants.%V.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.352a62.2 +// CHECK:STDOUT: %Self.as_type.loc5_19.1 => constants.%V.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.ac8ca9.2 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_interface_instance_caller_not.carbon @@ -1061,8 +1061,8 @@ fn Works() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %L2.type: type = facet_type <@L2> [concrete] // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.73b: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.7c6: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %L2.WithSelf.R2.type.e38: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %L2.WithSelf.R2.f23: %L2.WithSelf.R2.type.e38 = struct_value () [symbolic] @@ -1081,11 +1081,11 @@ fn Works() { // CHECK:STDOUT: %L2.WithSelf.R2.c61: %L2.WithSelf.R2.type.ba3 = struct_value () [symbolic] // CHECK:STDOUT: %L2.WithSelf.S2.type.68b: type = fn_type @L2.WithSelf.S2, @L2.WithSelf(%T) [symbolic] // CHECK:STDOUT: %L2.WithSelf.S2.470: %L2.WithSelf.S2.type.68b = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %L2.lookup_impl_witness.074: = lookup_impl_witness %T, @L2 [symbolic] // CHECK:STDOUT: %.f8e: type = fn_type_with_self_type %L2.WithSelf.R2.type.ba3, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.f8e = impl_witness_access %L2.lookup_impl_witness.074, element0 [symbolic] -// CHECK:STDOUT: %pattern_type.0fc: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %pattern_type.0a0: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %specific_impl_fn.b6c: = specific_impl_function %impl.elem0, @L2.WithSelf.R2(%T) [symbolic] // CHECK:STDOUT: %.b1c: type = fn_type_with_self_type %L2.WithSelf.S2.type.68b, %T [symbolic] // CHECK:STDOUT: %impl.elem1: %.b1c = impl_witness_access %L2.lookup_impl_witness.074, element1 [symbolic] @@ -1137,29 +1137,29 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %L2.WithSelf.R2.decl: @L2.WithSelf.%L2.WithSelf.R2.type (%L2.WithSelf.R2.type.e38) = fn_decl @L2.WithSelf.R2 [symbolic = @L2.WithSelf.%L2.WithSelf.R2 (constants.%L2.WithSelf.R2.f23)] { -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.73b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.7c6) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.R2.%pattern_type (%pattern_type.7c6) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @L2.WithSelf.R2.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.2: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @L2.WithSelf.R2.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %L2.assoc_type = assoc_entity element0, %L2.WithSelf.R2.decl [concrete = constants.%assoc0] // CHECK:STDOUT: %L2.WithSelf.S2.decl: @L2.WithSelf.%L2.WithSelf.S2.type (%L2.WithSelf.S2.type.7f8) = fn_decl @L2.WithSelf.S2 [symbolic = @L2.WithSelf.%L2.WithSelf.S2 (constants.%L2.WithSelf.S2.827)] { -// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = ref_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.73b) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.7c6) = ref_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @L2.WithSelf.S2.%pattern_type (%pattern_type.7c6) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: ref @L2.WithSelf.S2.%Self.binding.as_type (%Self.binding.as_type) = ref_param call_param0 -// CHECK:STDOUT: %.loc6_19.1: type = splice_block %.loc6_19.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: ref @L2.WithSelf.S2.%Self.as_type.loc6_19.1 (%Self.as_type) = ref_param call_param0 +// CHECK:STDOUT: %.loc6_19.1: type = splice_block %.loc6_19.2 [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %L2.type = name_ref Self, @L2.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc6_19.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc6_19.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc6_19.2: type = converted %Self.ref, %Self.as_type.loc6_19.2 [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: ref @L2.WithSelf.S2.%Self.binding.as_type (%Self.binding.as_type) = ref_binding self, %self.param +// CHECK:STDOUT: %self: ref @L2.WithSelf.S2.%Self.as_type.loc6_19.1 (%Self.as_type) = ref_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc1: %L2.assoc_type = assoc_entity element1, %L2.WithSelf.S2.decl [concrete = constants.%assoc1] // CHECK:STDOUT: @@ -1174,25 +1174,25 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L2.WithSelf.R2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.73b)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type (constants.%pattern_type.7c6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @L2.WithSelf.R2.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @L2.WithSelf.R2.%Self.as_type.loc5_15.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @L2.WithSelf.S2(@L2.%Self: %L2.type) { // CHECK:STDOUT: %Self: %L2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.73b)] +// CHECK:STDOUT: %Self.as_type.loc6_19.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_19.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc6_19.1 [symbolic = %pattern_type (constants.%pattern_type.7c6)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: ref @L2.WithSelf.S2.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: ref @L2.WithSelf.S2.%Self.as_type.loc6_19.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Simple5(%T.loc10_13.2: %L2.type) { // CHECK:STDOUT: %T.loc10_13.1: %L2.type = symbolic_binding T, 0 [symbolic = %T.loc10_13.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc10_13.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_4.2: type = facet_access_type %T.loc10_13.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %L2.WithSelf.R2.type: type = fn_type @L2.WithSelf.R2, @L2.WithSelf(%T.loc10_13.1) [symbolic = %L2.WithSelf.R2.type (constants.%L2.WithSelf.R2.type.ba3)] // CHECK:STDOUT: %.loc18_4.2: type = fn_type_with_self_type %L2.WithSelf.R2.type, %T.loc10_13.1 [symbolic = %.loc18_4.2 (constants.%.f8e)] // CHECK:STDOUT: %L2.lookup_impl_witness: = lookup_impl_witness %T.loc10_13.1, @L2 [symbolic = %L2.lookup_impl_witness (constants.%L2.lookup_impl_witness.074)] @@ -1206,15 +1206,15 @@ fn Works() { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc18: %L2.type = name_ref T, %T.loc10_13.2 [symbolic = %T.loc10_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc18: type = facet_access_type %T.ref.loc18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc18_4.1: type = converted %T.ref.loc18, %T.as_type.loc18 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_4.1: type = facet_access_type %T.ref.loc18 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc18_4.1: type = converted %T.ref.loc18, %T.as_type.loc18_4.1 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %R2.ref: %L2.assoc_type = name_ref R2, @L2.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc18_4.1: @Simple5.%.loc18_4.2 (%.f8e) = impl_witness_access constants.%L2.lookup_impl_witness.074, element0 [symbolic = %impl.elem0.loc18_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc18_4.1: = specific_impl_function %impl.elem0.loc18_4.1, @L2.WithSelf.R2(constants.%T) [symbolic = %specific_impl_fn.loc18_4.2 (constants.%specific_impl_fn.b6c)] // CHECK:STDOUT: %L2.WithSelf.R2.call: init %empty_tuple.type = call %specific_impl_fn.loc18_4.1() // CHECK:STDOUT: %T.ref.loc26: %L2.type = name_ref T, %T.loc10_13.2 [symbolic = %T.loc10_13.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc26_4.1: type = converted %T.ref.loc26, %T.as_type.loc26 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc26: type = facet_access_type %T.ref.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc26_4.1: type = converted %T.ref.loc26, %T.as_type.loc26 [symbolic = %T.as_type.loc18_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %S2.ref: %L2.assoc_type = name_ref S2, @L2.WithSelf.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1.loc26_4.1: @Simple5.%.loc26_4.2 (%.b1c) = impl_witness_access constants.%L2.lookup_impl_witness.074, element1 [symbolic = %impl.elem1.loc26_4.2 (constants.%impl.elem1)] // CHECK:STDOUT: %specific_impl_fn.loc26_4.1: = specific_impl_function %impl.elem1.loc26_4.1, @L2.WithSelf.S2(constants.%T) [symbolic = %specific_impl_fn.loc26_4.2 (constants.%specific_impl_fn.b67)] @@ -1251,14 +1251,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.R2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.73b +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.S2(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.73b +// CHECK:STDOUT: %Self.as_type.loc6_19.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Simple5(constants.%T) { @@ -1276,14 +1276,14 @@ fn Works() { // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.R2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0fc +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0a0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @L2.WithSelf.S2(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0fc +// CHECK:STDOUT: %Self.as_type.loc6_19.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.0a0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Compound5(constants.%V) { diff --git a/toolchain/check/testdata/interface/default_fn.carbon b/toolchain/check/testdata/interface/default_fn.carbon index f6cc09b0e303..2db28e5742e0 100644 --- a/toolchain/check/testdata/interface/default_fn.carbon +++ b/toolchain/check/testdata/interface/default_fn.carbon @@ -33,8 +33,8 @@ class C { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.849: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.5c6: type = symbolic_binding_type Self, 0, %Self.849 [symbolic] -// CHECK:STDOUT: %pattern_type.b59: type = pattern_type %Self.binding.as_type.5c6 [symbolic] +// CHECK:STDOUT: %Self.as_type.f3e: type = facet_access_type %Self.849 [symbolic] +// CHECK:STDOUT: %pattern_type.191: type = pattern_type %Self.as_type.f3e [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.b26: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self.849) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %I.WithSelf.F.983: %I.WithSelf.F.type.b26 = struct_value () [symbolic] @@ -49,7 +49,7 @@ class C { // CHECK:STDOUT: %I.WithSelf.F.860: %I.WithSelf.F.type.1f2 = struct_value () [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type.5c6 [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.f3e [symbolic] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %C.val: %C = struct_value () [concrete] // CHECK:STDOUT: %.fae: type = fn_type_with_self_type %I.WithSelf.F.type.1f2, %I.facet [concrete] @@ -82,16 +82,16 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.b26) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.983)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.b59) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.191) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.191) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.5c6) = value_param call_param0 -// CHECK:STDOUT: %.loc18_23.1: type = splice_block %.loc18_23.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5c6)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.f3e) = value_param call_param0 +// CHECK:STDOUT: %.loc18_23.1: type = splice_block %.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.f3e)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self.849)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5c6)] -// CHECK:STDOUT: %.loc18_23.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5c6)] +// CHECK:STDOUT: %Self.as_type.loc18_23.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.f3e)] +// CHECK:STDOUT: %.loc18_23.2: type = converted %Self.ref, %Self.as_type.loc18_23.2 [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.f3e)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.5c6) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.f3e) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0.1f8] // CHECK:STDOUT: @@ -141,13 +141,13 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.849)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5c6)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.b59)] +// CHECK:STDOUT: %Self.as_type.loc18_23.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc18_23.1 (constants.%Self.as_type.f3e)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc18_23.1 [symbolic = %pattern_type (constants.%pattern_type.191)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Self.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Self.as_type.loc18_23.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type.5c6)) { +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc18_23.1 (%Self.as_type.f3e)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete] @@ -194,8 +194,8 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self.849) { // CHECK:STDOUT: %Self => constants.%Self.849 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.5c6 -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.b59 +// CHECK:STDOUT: %Self.as_type.loc18_23.1 => constants.%Self.as_type.f3e +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.191 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -207,7 +207,7 @@ class C { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type.loc18_23.1 => constants.%C // CHECK:STDOUT: %pattern_type => constants.%pattern_type.7c7 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon index dfff46be8d95..9982b1c4a01a 100644 --- a/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_const_alias.carbon @@ -81,10 +81,10 @@ interface C { // CHECK:STDOUT: %assoc0.7c1: %I2.assoc_type = assoc_entity element0, @I2.WithSelf.%T2 [concrete] // CHECK:STDOUT: %J2.type: type = facet_type <@J2> [concrete] // CHECK:STDOUT: %Self.4a7: %J2.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.4a7 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.4a7 [symbolic] // CHECK:STDOUT: %I2.lookup_impl_witness.d97: = lookup_impl_witness %Self.4a7, @I2 [symbolic] -// CHECK:STDOUT: %.ef7: require_specific_def_type = require_specific_def @V.binding.as_type.as.I2.impl(%Self.4a7) [symbolic] -// CHECK:STDOUT: %I2.facet.7a5: %I2.type = facet_value %Self.binding.as_type, (%I2.lookup_impl_witness.d97) [symbolic] +// CHECK:STDOUT: %.0c6: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self.4a7) [symbolic] +// CHECK:STDOUT: %I2.facet.d21: %I2.type = facet_value %Self.as_type, (%I2.lookup_impl_witness.d97) [symbolic] // CHECK:STDOUT: %impl.elem0.006: type = impl_witness_access %I2.lookup_impl_witness.d97, element0 [symbolic] // CHECK:STDOUT: %.805: Core.Form = init_form %impl.elem0.006 [symbolic] // CHECK:STDOUT: %pattern_type.a14: type = pattern_type %impl.elem0.006 [symbolic] @@ -110,9 +110,9 @@ interface C { // CHECK:STDOUT: %return.param_patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @J2.WithSelf.F2.%pattern_type (%pattern_type.a14) = return_slot_pattern %return.param_patt, %U2.ref [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @J2.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %I2.facet.loc14_14.2: %I2.type = facet_value %Self.as_type, (constants.%I2.lookup_impl_witness.d97) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.7a5)] -// CHECK:STDOUT: %.loc14_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc14_14.2 [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.7a5)] +// CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type @J2.%Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %I2.facet.loc14_14.2: %I2.type = facet_value %Self.as_type.loc14_14.2, (constants.%I2.lookup_impl_witness.d97) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.d21)] +// CHECK:STDOUT: %.loc14_14.3: %I2.type = converted @J2.%Self, %I2.facet.loc14_14.2 [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.d21)] // CHECK:STDOUT: %impl.elem0.loc14_14.2: type = impl_witness_access constants.%I2.lookup_impl_witness.d97, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.006)] // CHECK:STDOUT: %U2.ref: type = name_ref U2, %impl.elem0.loc14_14.2 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.006)] // CHECK:STDOUT: %.loc14_14.4: Core.Form = init_form %U2.ref [symbolic = %.loc14_14.2 (constants.%.805)] @@ -134,10 +134,10 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @J2.WithSelf.F2(@J2.%Self: %J2.type) { // CHECK:STDOUT: %Self: %J2.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.4a7)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc14_14.1: require_specific_def_type = require_specific_def @V.binding.as_type.as.I2.impl(%Self) [symbolic = %.loc14_14.1 (constants.%.ef7)] +// CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc14_14.1: require_specific_def_type = require_specific_def @V.as_type.as.I2.impl(%Self) [symbolic = %.loc14_14.1 (constants.%.0c6)] // CHECK:STDOUT: %I2.lookup_impl_witness: = lookup_impl_witness %Self, @I2 [symbolic = %I2.lookup_impl_witness (constants.%I2.lookup_impl_witness.d97)] -// CHECK:STDOUT: %I2.facet.loc14_14.1: %I2.type = facet_value %Self.binding.as_type, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.7a5)] +// CHECK:STDOUT: %I2.facet.loc14_14.1: %I2.type = facet_value %Self.as_type.loc14_14.1, (%I2.lookup_impl_witness) [symbolic = %I2.facet.loc14_14.1 (constants.%I2.facet.d21)] // CHECK:STDOUT: %impl.elem0.loc14_14.1: type = impl_witness_access %I2.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_14.1 (constants.%impl.elem0.006)] // CHECK:STDOUT: %.loc14_14.2: Core.Form = init_form %impl.elem0.loc14_14.1 [symbolic = %.loc14_14.2 (constants.%.805)] // CHECK:STDOUT: %pattern_type: type = pattern_type %impl.elem0.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type.a14)] @@ -149,10 +149,10 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @J2.WithSelf.F2(constants.%Self.4a7) { // CHECK:STDOUT: %Self => constants.%Self.4a7 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %.loc14_14.1 => constants.%.ef7 +// CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %.loc14_14.1 => constants.%.0c6 // CHECK:STDOUT: %I2.lookup_impl_witness => constants.%I2.lookup_impl_witness.d97 -// CHECK:STDOUT: %I2.facet.loc14_14.1 => constants.%I2.facet.7a5 +// CHECK:STDOUT: %I2.facet.loc14_14.1 => constants.%I2.facet.d21 // CHECK:STDOUT: %impl.elem0.loc14_14.1 => constants.%impl.elem0.006 // CHECK:STDOUT: %.loc14_14.2 => constants.%.805 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.a14 @@ -163,8 +163,8 @@ interface C { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C.type: type = facet_type <@C> [concrete] // CHECK:STDOUT: %Self: %C.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %C.WithSelf.F.type: type = fn_type @C.WithSelf.F, @C.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %C.WithSelf.F: %C.WithSelf.F.type = struct_value () [symbolic] @@ -204,16 +204,16 @@ interface C { // CHECK:STDOUT: %impl.elem0.loc8_9.2: @C.WithSelf.G.%.loc8 (%.018) = impl_witness_access %C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc8_9.2: = specific_impl_function %impl.elem0.loc8_9.2, @C.WithSelf.F(%Self) [symbolic = %specific_impl_fn.loc8_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @C.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type)) { +// CHECK:STDOUT: fn(%self.param: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %self.ref.loc8: @C.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc8: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: %F.ref.loc8: %C.assoc_type = name_ref F, @C.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc8_9.1: @C.WithSelf.G.%.loc8 (%.018) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc8_9: = bound_method %self.ref.loc8, %impl.elem0.loc8_9.1 // CHECK:STDOUT: %specific_impl_fn.loc8_9.1: = specific_impl_function %impl.elem0.loc8_9.1, @C.WithSelf.F(constants.%Self) [symbolic = %specific_impl_fn.loc8_9.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc8_12: = bound_method %self.ref.loc8, %specific_impl_fn.loc8_9.1 // CHECK:STDOUT: %C.WithSelf.F.call.loc8: init %empty_tuple.type = call %bound_method.loc8_12(%self.ref.loc8) -// CHECK:STDOUT: %self.ref.loc9: @C.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = name_ref self, %self +// CHECK:STDOUT: %self.ref.loc9: @C.WithSelf.G.%Self.as_type.loc6_14.1 (%Self.as_type) = name_ref self, %self // CHECK:STDOUT: %impl.elem0.loc9: @C.WithSelf.G.%.loc8 (%.018) = impl_witness_access constants.%C.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %F.ref.loc9: @C.WithSelf.G.%.loc8 (%.018) = name_ref F, %impl.elem0.loc9 [symbolic = %impl.elem0.loc8_9.2 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc9_9: = bound_method %self.ref.loc9, %F.ref.loc9 @@ -235,7 +235,7 @@ interface C { // CHECK:STDOUT: // CHECK:STDOUT: specific @C.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc6_14.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon index f8efd2355b5e..35fd8ce1b978 100644 --- a/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon +++ b/toolchain/check/testdata/interface/fail_assoc_fn_invalid_use.carbon @@ -33,8 +33,8 @@ fn Use(T:! I) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.fa0: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.965: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type.08c: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.705: %I.WithSelf.F.type.08c = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -47,7 +47,7 @@ fn Use(T:! I) { // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %I.WithSelf.F.type.a1f: type = fn_type @I.WithSelf.F, @I.WithSelf(%T) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.cc3: %I.WithSelf.F.type.a1f = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T, @I [symbolic] // CHECK:STDOUT: %.7d0: type = fn_type_with_self_type %I.WithSelf.F.type.a1f, %T [symbolic] // CHECK:STDOUT: %impl.elem0: %.7d0 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] @@ -77,16 +77,16 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.F.decl: @I.WithSelf.%I.WithSelf.F.type (%I.WithSelf.F.type.08c) = fn_decl @I.WithSelf.F [symbolic = @I.WithSelf.%I.WithSelf.F (constants.%I.WithSelf.F.705)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.fa0) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type.965) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_14.1: type = splice_block %.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_14.2: type = converted %Self.ref, %Self.as_type.loc5_14.2 [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -100,17 +100,17 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.fa0)] +// CHECK:STDOUT: %Self.as_type.loc5_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc5_14.1 [symbolic = %pattern_type (constants.%pattern_type.965)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc5_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Use(%T.loc8_9.2: %I.type) { // CHECK:STDOUT: %T.loc8_9.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc8_9.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc8_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc13_4.2: type = facet_access_type %T.loc8_9.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc8_9.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.a1f)] // CHECK:STDOUT: %.loc13_4.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc8_9.1 [symbolic = %.loc13_4.2 (constants.%.7d0)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc8_9.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] @@ -120,8 +120,8 @@ fn Use(T:! I) { // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc8_9.2 [symbolic = %T.loc8_9.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc13_4.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc13_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc13_4.1: type = converted %T.ref, %T.as_type.loc13_4.1 [symbolic = %T.as_type.loc13_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc13_4.1: @Use.%.loc13_4.2 (%.7d0) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return @@ -137,8 +137,8 @@ fn Use(T:! I) { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.fa0 +// CHECK:STDOUT: %Self.as_type.loc5_14.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.965 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Use(constants.%T) { diff --git a/toolchain/check/testdata/interface/fail_duplicate.carbon b/toolchain/check/testdata/interface/fail_duplicate.carbon index 19cc014477b5..47ad35883e82 100644 --- a/toolchain/check/testdata/interface/fail_duplicate.carbon +++ b/toolchain/check/testdata/interface/fail_duplicate.carbon @@ -139,8 +139,8 @@ interface Class { } // CHECK:STDOUT: %Self.8875a4.1: %Interface.type.6f2e43.1 = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %Interface.type.6f2e43.2: type = facet_type <@Interface.loc13> [concrete] // CHECK:STDOUT: %Self.8875a4.2: %Interface.type.6f2e43.2 = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.8875a4.2 [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.8875a4.2 [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F.type: type = fn_type @Interface.WithSelf.F, @Interface.WithSelf.loc13(%Self.8875a4.2) [symbolic] // CHECK:STDOUT: %Interface.WithSelf.F: %Interface.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface.loc13 [concrete] @@ -175,13 +175,13 @@ interface Class { } // CHECK:STDOUT: %self.param_patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @Interface.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @Interface.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @Interface.WithSelf.F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc14_14.1: type = splice_block %.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %Interface.type.6f2e43.2 = name_ref Self, @Interface.loc13.%Self [symbolic = %Self (constants.%Self.8875a4.2)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc14_14.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc14_14.2: type = converted %Self.ref, %Self.as_type.loc14_14.2 [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @Interface.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @Interface.WithSelf.F.%Self.as_type.loc14_14.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %Interface.assoc_type = assoc_entity element0, %Interface.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -195,10 +195,10 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Interface.WithSelf.F(@Interface.loc13.%Self: %Interface.type.6f2e43.2) { // CHECK:STDOUT: %Self: %Interface.type.6f2e43.2 = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.8875a4.2)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc14_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc14_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc14_14.1 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @Interface.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @Interface.WithSelf.F.%Self.as_type.loc14_14.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface.WithSelf.loc4(constants.%Self.8875a4.1) {} @@ -207,7 +207,7 @@ interface Class { } // CHECK:STDOUT: // CHECK:STDOUT: specific @Interface.WithSelf.F(constants.%Self.8875a4.2) { // CHECK:STDOUT: %Self => constants.%Self.8875a4.2 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc14_14.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_lookup_in_type_type.carbon b/toolchain/check/testdata/interface/fail_lookup_in_type_type.carbon index 7b1f15e098af..3c42d9260c78 100644 --- a/toolchain/check/testdata/interface/fail_lookup_in_type_type.carbon +++ b/toolchain/check/testdata/interface/fail_lookup_in_type_type.carbon @@ -61,7 +61,7 @@ let U: (type where .Self impls type).missing = {}; // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: } @@ -78,8 +78,8 @@ let U: (type where .Self impls type).missing = {}; // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc8_32: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_14: type = where_expr %.Self [concrete = constants.%type] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc8_20, %.loc8_32 diff --git a/toolchain/check/testdata/interface/fail_member_lookup.carbon b/toolchain/check/testdata/interface/fail_member_lookup.carbon index 21c895fc5eaf..6593262cc4ee 100644 --- a/toolchain/check/testdata/interface/fail_member_lookup.carbon +++ b/toolchain/check/testdata/interface/fail_member_lookup.carbon @@ -67,7 +67,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.cb4: type = pattern_type %Different.type [concrete] // CHECK:STDOUT: %U: %Different.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -102,7 +102,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: %U.ref: %Different.type = name_ref U, %U.loc32_7.2 [symbolic = %U.loc32_7.1 (constants.%U)] // CHECK:STDOUT: %Interface.ref: type = name_ref Interface, file.%Interface.decl [concrete = constants.%Interface.type] // CHECK:STDOUT: %T.ref: %Interface.assoc_type = name_ref T, @T.%assoc1 [concrete = constants.%assoc1] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc32_25.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc32_25.1 (constants.%U.as_type)] // CHECK:STDOUT: %.loc32: type = splice_block %Different.ref [concrete = constants.%Different.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %Different.ref: type = name_ref Different, file.%Different.decl [concrete = constants.%Different.type] @@ -168,7 +168,7 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%U.loc32_7.2: %Different.type) { // CHECK:STDOUT: %U.loc32_7.1: %Different.type = symbolic_binding U, 0 [symbolic = %U.loc32_7.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc32_7.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc32_25.1: type = facet_access_type %U.loc32_7.1 [symbolic = %U.as_type.loc32_25.1 (constants.%U.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> ; // CHECK:STDOUT: } @@ -188,6 +188,6 @@ fn G(U:! Different) -> U.(Interface.T); // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%U) { // CHECK:STDOUT: %U.loc32_7.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type +// CHECK:STDOUT: %U.as_type.loc32_25.1 => constants.%U.as_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/fail_modifiers.carbon b/toolchain/check/testdata/interface/fail_modifiers.carbon index affe9048c849..84bcf89ca3b6 100644 --- a/toolchain/check/testdata/interface/fail_modifiers.carbon +++ b/toolchain/check/testdata/interface/fail_modifiers.carbon @@ -167,8 +167,8 @@ interface I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -191,13 +191,13 @@ interface I { // CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc9_22.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_22.1: type = splice_block %.loc9_22.2 [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9_22.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_22.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_22.2: type = converted %Self.ref, %Self.as_type.loc9_22.2 [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc9_22.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -211,17 +211,17 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc9_22.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_22.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_22.1 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc9_22.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_22.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -230,8 +230,8 @@ interface I { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.F: %I.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -254,13 +254,13 @@ interface I { // CHECK:STDOUT: %self.param_patt: @I.WithSelf.F.%pattern_type (%pattern_type) = value_param_pattern [concrete] // CHECK:STDOUT: %self.patt: @I.WithSelf.F.%pattern_type (%pattern_type) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.F.%Self.as_type.loc9_24.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_24.1: type = splice_block %.loc9_24.2 [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9_24.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_24.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_24.2: type = converted %Self.ref, %Self.as_type.loc9_24.2 [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.F.%Self.as_type.loc9_24.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -274,17 +274,17 @@ interface I { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.F(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %Self.as_type.loc9_24.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_24.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc9_24.1 [symbolic = %pattern_type (constants.%pattern_type)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.F.%Self.as_type.loc9_24.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_24.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/final.carbon b/toolchain/check/testdata/interface/final.carbon index bdc23d2657c3..36d31b5d18cd 100644 --- a/toolchain/check/testdata/interface/final.carbon +++ b/toolchain/check/testdata/interface/final.carbon @@ -44,28 +44,28 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.f76: type = pattern_type %J.type [concrete] // CHECK:STDOUT: %T.612: %J.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.50b: type = symbolic_binding_type T, 0, %T.612 [symbolic] -// CHECK:STDOUT: %I.impl_witness.ada: = impl_witness @T.binding.as_type.as.I.impl.%I.impl_witness_table, @T.binding.as_type.as.I.impl(%T.612) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.type.060: type = fn_type @T.binding.as_type.as.I.impl.F, @T.binding.as_type.as.I.impl(%T.612) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.ded: %T.binding.as_type.as.I.impl.F.type.060 = struct_value () [symbolic] -// CHECK:STDOUT: %I.facet.af5: %I.type = facet_value %T.binding.as_type.50b, (%I.impl_witness.ada) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.type.7d2: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.af5) [symbolic] -// CHECK:STDOUT: %I.WithSelf.F.bc8: %I.WithSelf.F.type.7d2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.6e5: type = facet_access_type %T.612 [symbolic] +// CHECK:STDOUT: %I.impl_witness.3f7: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.612) [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.f47: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.612) [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.3f2: %T.as_type.as.I.impl.F.type.f47 = struct_value () [symbolic] +// CHECK:STDOUT: %I.facet.973: %I.type = facet_value %T.as_type.6e5, (%I.impl_witness.3f7) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.type.1a3: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.973) [symbolic] +// CHECK:STDOUT: %I.WithSelf.F.e5c: %I.WithSelf.F.type.1a3 = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T.651: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %UseI.type: type = fn_type @UseI [concrete] // CHECK:STDOUT: %UseI: %UseI.type = struct_value () [concrete] // CHECK:STDOUT: %I.WithSelf.F.type.a1f: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.651) [symbolic] // CHECK:STDOUT: %I.WithSelf.F.cc3: %I.WithSelf.F.type.a1f = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.3af: type = symbolic_binding_type T, 0, %T.651 [symbolic] +// CHECK:STDOUT: %T.as_type.066: type = facet_access_type %T.651 [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.651, @I [symbolic] // CHECK:STDOUT: %.7d0: type = fn_type_with_self_type %I.WithSelf.F.type.a1f, %T.651 [symbolic] // CHECK:STDOUT: %impl.elem0: %.7d0 = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @I.WithSelf.F(%T.651) [symbolic] // CHECK:STDOUT: %UseJ.type: type = fn_type @UseJ [concrete] // CHECK:STDOUT: %UseJ: %UseJ.type = struct_value () [concrete] -// CHECK:STDOUT: %.f66: require_specific_def_type = require_specific_def @T.binding.as_type.as.I.impl(%T.612) [symbolic] -// CHECK:STDOUT: %UseI.specific_fn.5d2: = specific_function %UseI, @UseI(%I.facet.af5) [symbolic] +// CHECK:STDOUT: %.337: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.612) [symbolic] +// CHECK:STDOUT: %UseI.specific_fn.da6: = specific_function %UseI, @UseI(%I.facet.973) [symbolic] // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %complete_type: = complete_type_witness %empty_struct_type [concrete] @@ -74,17 +74,17 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %Use.type: type = fn_type @Use [concrete] // CHECK:STDOUT: %Use: %Use.type = struct_value () [concrete] // CHECK:STDOUT: %UseJ.specific_fn: = specific_function %UseJ, @UseJ(%J.facet) [concrete] -// CHECK:STDOUT: %.623: type = fn_type_with_self_type %I.WithSelf.F.type.7d2, %I.facet.af5 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.specific_fn.95b: = specific_function %T.binding.as_type.as.I.impl.F.ded, @T.binding.as_type.as.I.impl.F(%T.612) [symbolic] -// CHECK:STDOUT: %I.impl_witness.9a0: = impl_witness @T.binding.as_type.as.I.impl.%I.impl_witness_table, @T.binding.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.type.9f7: type = fn_type @T.binding.as_type.as.I.impl.F, @T.binding.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.698: %T.binding.as_type.as.I.impl.F.type.9f7 = struct_value () [concrete] -// CHECK:STDOUT: %.d61: require_specific_def_type = require_specific_def @T.binding.as_type.as.I.impl(%J.facet) [concrete] -// CHECK:STDOUT: %I.facet.2df: %I.type = facet_value %C, (%I.impl_witness.9a0) [concrete] -// CHECK:STDOUT: %UseI.specific_fn.163: = specific_function %UseI, @UseI(%I.facet.2df) [concrete] -// CHECK:STDOUT: %I.WithSelf.F.type.1b3: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.2df) [concrete] -// CHECK:STDOUT: %.a11: type = fn_type_with_self_type %I.WithSelf.F.type.1b3, %I.facet.2df [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.specific_fn.78c: = specific_function %T.binding.as_type.as.I.impl.F.698, @T.binding.as_type.as.I.impl.F(%J.facet) [concrete] +// CHECK:STDOUT: %.d8f: type = fn_type_with_self_type %I.WithSelf.F.type.1a3, %I.facet.973 [symbolic] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.8c5: = specific_function %T.as_type.as.I.impl.F.3f2, @T.as_type.as.I.impl.F(%T.612) [symbolic] +// CHECK:STDOUT: %I.impl_witness.935: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type.6b7: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.1ec: %T.as_type.as.I.impl.F.type.6b7 = struct_value () [concrete] +// CHECK:STDOUT: %.855: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%J.facet) [concrete] +// CHECK:STDOUT: %I.facet.da4: %I.type = facet_value %C, (%I.impl_witness.935) [concrete] +// CHECK:STDOUT: %UseI.specific_fn.638: = specific_function %UseI, @UseI(%I.facet.da4) [concrete] +// CHECK:STDOUT: %I.WithSelf.F.type.340: type = fn_type @I.WithSelf.F, @I.WithSelf(%I.facet.da4) [concrete] +// CHECK:STDOUT: %.cae: type = fn_type_with_self_type %I.WithSelf.F.type.340, %I.facet.da4 [concrete] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.specific_fn.f29: = specific_function %T.as_type.as.I.impl.F.1ec, @T.as_type.as.I.impl.F(%J.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -107,12 +107,12 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %J.decl: type = interface_decl @J [concrete = constants.%J.type] {} {} -// CHECK:STDOUT: impl_decl @T.binding.as_type.as.I.impl [concrete] { +// CHECK:STDOUT: impl_decl @T.as_type.as.I.impl [concrete] { // CHECK:STDOUT: %T.patt: %pattern_type.f76 = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc7_21.2 [symbolic = %T.loc7_21.1 (constants.%T.612)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %.loc7_27: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] +// CHECK:STDOUT: %T.as_type.loc7_27.2: type = facet_access_type %T.ref [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %.loc7_27: type = converted %T.ref, %T.as_type.loc7_27.2 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.6e5)] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.loc7_24: type = splice_block %J.ref [concrete = constants.%J.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] @@ -173,22 +173,22 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic impl @T.binding.as_type.as.I.impl(%T.loc7_21.2: %J.type) { +// CHECK:STDOUT: generic impl @T.as_type.as.I.impl(%T.loc7_21.2: %J.type) { // CHECK:STDOUT: %T.loc7_21.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc7_21.1 (constants.%T.612)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc7_21.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %I.impl_witness.loc7_34.2: = impl_witness %I.impl_witness_table, @T.binding.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.ada)] +// CHECK:STDOUT: %T.as_type.loc7_27.1: type = facet_access_type %T.loc7_21.1 [symbolic = %T.as_type.loc7_27.1 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %I.impl_witness.loc7_34.2: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.type: type = fn_type @T.binding.as_type.as.I.impl.F, @T.binding.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %T.binding.as_type.as.I.impl.F.type (constants.%T.binding.as_type.as.I.impl.F.type.060)] -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F: @T.binding.as_type.as.I.impl.%T.binding.as_type.as.I.impl.F.type (%T.binding.as_type.as.I.impl.F.type.060) = struct_value () [symbolic = %T.binding.as_type.as.I.impl.F (constants.%T.binding.as_type.as.I.impl.F.ded)] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type: type = fn_type @T.as_type.as.I.impl.F, @T.as_type.as.I.impl(%T.loc7_21.1) [symbolic = %T.as_type.as.I.impl.F.type (constants.%T.as_type.as.I.impl.F.type.f47)] +// CHECK:STDOUT: %T.as_type.as.I.impl.F: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.f47) = struct_value () [symbolic = %T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.3f2)] // CHECK:STDOUT: // CHECK:STDOUT: impl: %.loc7_27 as %I.ref { -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.decl: @T.binding.as_type.as.I.impl.%T.binding.as_type.as.I.impl.F.type (%T.binding.as_type.as.I.impl.F.type.060) = fn_decl @T.binding.as_type.as.I.impl.F [symbolic = @T.binding.as_type.as.I.impl.%T.binding.as_type.as.I.impl.F (constants.%T.binding.as_type.as.I.impl.F.ded)] {} {} -// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%T.binding.as_type.as.I.impl.F.decl), @T.binding.as_type.as.I.impl [concrete] -// CHECK:STDOUT: %I.impl_witness.loc7_34.1: = impl_witness %I.impl_witness_table, @T.binding.as_type.as.I.impl(constants.%T.612) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.ada)] +// CHECK:STDOUT: %T.as_type.as.I.impl.F.decl: @T.as_type.as.I.impl.%T.as_type.as.I.impl.F.type (%T.as_type.as.I.impl.F.type.f47) = fn_decl @T.as_type.as.I.impl.F [symbolic = @T.as_type.as.I.impl.%T.as_type.as.I.impl.F (constants.%T.as_type.as.I.impl.F.3f2)] {} {} +// CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%T.as_type.as.I.impl.F.decl), @T.as_type.as.I.impl [concrete] +// CHECK:STDOUT: %I.impl_witness.loc7_34.1: = impl_witness %I.impl_witness_table, @T.as_type.as.I.impl(constants.%T.612) [symbolic = %I.impl_witness.loc7_34.2 (constants.%I.impl_witness.3f7)] // CHECK:STDOUT: // CHECK:STDOUT: !members: -// CHECK:STDOUT: .F = %T.binding.as_type.as.I.impl.F.decl +// CHECK:STDOUT: .F = %T.as_type.as.I.impl.F.decl // CHECK:STDOUT: witness = %I.impl_witness.loc7_34.1 // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -213,7 +213,7 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: fn(); // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @T.binding.as_type.as.I.impl.F(@T.binding.as_type.as.I.impl.%T.loc7_21.2: %J.type) { +// CHECK:STDOUT: generic fn @T.as_type.as.I.impl.F(@T.as_type.as.I.impl.%T.loc7_21.2: %J.type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: fn() { @@ -226,7 +226,7 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %T.loc11_10.1: %I.type = symbolic_binding T, 0 [symbolic = %T.loc11_10.1 (constants.%T.651)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc11_10.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] +// CHECK:STDOUT: %T.as_type.loc11_19.2: type = facet_access_type %T.loc11_10.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.066)] // CHECK:STDOUT: %I.WithSelf.F.type: type = fn_type @I.WithSelf.F, @I.WithSelf(%T.loc11_10.1) [symbolic = %I.WithSelf.F.type (constants.%I.WithSelf.F.type.a1f)] // CHECK:STDOUT: %.loc11_19.2: type = fn_type_with_self_type %I.WithSelf.F.type, %T.loc11_10.1 [symbolic = %.loc11_19.2 (constants.%.7d0)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %T.loc11_10.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] @@ -236,8 +236,8 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %I.type = name_ref T, %T.loc11_10.2 [symbolic = %T.loc11_10.1 (constants.%T.651)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] -// CHECK:STDOUT: %.loc11_19.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.3af)] +// CHECK:STDOUT: %T.as_type.loc11_19.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.066)] +// CHECK:STDOUT: %.loc11_19.1: type = converted %T.ref, %T.as_type.loc11_19.1 [symbolic = %T.as_type.loc11_19.2 (constants.%T.as_type.066)] // CHECK:STDOUT: %F.ref: %I.assoc_type = name_ref F, @I.WithSelf.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11_19.1: @UseI.%.loc11_19.2 (%.7d0) = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_19.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc11_19.1: = specific_impl_function %impl.elem0.loc11_19.1, @I.WithSelf.F(constants.%T.651) [symbolic = %specific_impl_fn.loc11_19.2 (constants.%specific_impl_fn)] @@ -250,20 +250,20 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %T.loc12_10.1: %J.type = symbolic_binding T, 0 [symbolic = %T.loc12_10.1 (constants.%T.612)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_10.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %.loc12_24.2: require_specific_def_type = require_specific_def @T.binding.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %.loc12_24.2 (constants.%.f66)] -// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.binding.as_type.as.I.impl.%I.impl_witness_table, @T.binding.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %I.impl_witness (constants.%I.impl_witness.ada)] -// CHECK:STDOUT: %I.facet.loc12_24.2: %I.type = facet_value %T.binding.as_type, (%I.impl_witness) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.af5)] -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2: = specific_function constants.%UseI, @UseI(%I.facet.loc12_24.2) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.5d2)] +// CHECK:STDOUT: %T.as_type.loc12_24.2: type = facet_access_type %T.loc12_10.1 [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %.loc12_24.2: require_specific_def_type = require_specific_def @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %.loc12_24.2 (constants.%.337)] +// CHECK:STDOUT: %I.impl_witness: = impl_witness @T.as_type.as.I.impl.%I.impl_witness_table, @T.as_type.as.I.impl(%T.loc12_10.1) [symbolic = %I.impl_witness (constants.%I.impl_witness.3f7)] +// CHECK:STDOUT: %I.facet.loc12_24.2: %I.type = facet_value %T.as_type.loc12_24.2, (%I.impl_witness) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.973)] +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2: = specific_function constants.%UseI, @UseI(%I.facet.loc12_24.2) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.da6)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %UseI.ref: %UseI.type = name_ref UseI, file.%UseI.decl [concrete = constants.%UseI] // CHECK:STDOUT: %T.ref: %J.type = name_ref T, %T.loc12_10.2 [symbolic = %T.loc12_10.1 (constants.%T.612)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.50b)] -// CHECK:STDOUT: %I.facet.loc12_24.1: %I.type = facet_value %T.as_type, (constants.%I.impl_witness.ada) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.af5)] -// CHECK:STDOUT: %.loc12_24.1: %I.type = converted %T.ref, %I.facet.loc12_24.1 [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.af5)] -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.1: = specific_function %UseI.ref, @UseI(constants.%I.facet.af5) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.5d2)] +// CHECK:STDOUT: %T.as_type.loc12_24.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc12_24.2 (constants.%T.as_type.6e5)] +// CHECK:STDOUT: %I.facet.loc12_24.1: %I.type = facet_value %T.as_type.loc12_24.1, (constants.%I.impl_witness.3f7) [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.973)] +// CHECK:STDOUT: %.loc12_24.1: %I.type = converted %T.ref, %I.facet.loc12_24.1 [symbolic = %I.facet.loc12_24.2 (constants.%I.facet.973)] +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.1: = specific_function %UseI.ref, @UseI(constants.%I.facet.973) [symbolic = %UseI.specific_fn.loc12_18.2 (constants.%UseI.specific_fn.da6)] // CHECK:STDOUT: %UseI.call: init %empty_tuple.type = call %UseI.specific_fn.loc12_18.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -293,28 +293,28 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.I.impl(constants.%T.612) { +// CHECK:STDOUT: specific @T.as_type.as.I.impl(constants.%T.612) { // CHECK:STDOUT: %T.loc7_21.1 => constants.%T.612 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.50b -// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.ada +// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%T.as_type.6e5 +// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.3f7 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.type => constants.%T.binding.as_type.as.I.impl.F.type.060 -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F => constants.%T.binding.as_type.as.I.impl.F.ded +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.f47 +// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.3f2 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.I.impl.F(constants.%T.612) { +// CHECK:STDOUT: specific @T.as_type.as.I.impl.F(constants.%T.612) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.af5) { +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.973) { // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %Self => constants.%I.facet.af5 -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7d2 -// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.bc8 +// CHECK:STDOUT: %Self => constants.%I.facet.973 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1a3 +// CHECK:STDOUT: %I.WithSelf.F => constants.%I.WithSelf.F.e5c // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.af5) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.973) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @UseI(constants.%T.651) { // CHECK:STDOUT: %T.loc11_10.1 => constants.%T.651 @@ -333,16 +333,16 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %T.loc12_10.1 => constants.%T.612 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseI(constants.%I.facet.af5) { -// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.af5 +// CHECK:STDOUT: specific @UseI(constants.%I.facet.973) { +// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.973 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type.50b -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.7d2 -// CHECK:STDOUT: %.loc11_19.2 => constants.%.623 -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.ada -// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.binding.as_type.as.I.impl.F.ded -// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.binding.as_type.as.I.impl.F.specific_fn.95b +// CHECK:STDOUT: %T.as_type.loc11_19.2 => constants.%T.as_type.6e5 +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1a3 +// CHECK:STDOUT: %.loc11_19.2 => constants.%.d8f +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.3f7 +// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.3f2 +// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.8c5 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @J.WithSelf(constants.%J.facet) { @@ -353,40 +353,40 @@ fn Use() { UseJ(C); } // CHECK:STDOUT: %T.loc12_10.1 => constants.%J.facet // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%C -// CHECK:STDOUT: %.loc12_24.2 => constants.%.d61 -// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.9a0 -// CHECK:STDOUT: %I.facet.loc12_24.2 => constants.%I.facet.2df -// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2 => constants.%UseI.specific_fn.163 +// CHECK:STDOUT: %T.as_type.loc12_24.2 => constants.%C +// CHECK:STDOUT: %.loc12_24.2 => constants.%.855 +// CHECK:STDOUT: %I.impl_witness => constants.%I.impl_witness.935 +// CHECK:STDOUT: %I.facet.loc12_24.2 => constants.%I.facet.da4 +// CHECK:STDOUT: %UseI.specific_fn.loc12_18.2 => constants.%UseI.specific_fn.638 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.I.impl(constants.%J.facet) { +// CHECK:STDOUT: specific @T.as_type.as.I.impl(constants.%J.facet) { // CHECK:STDOUT: %T.loc7_21.1 => constants.%J.facet -// CHECK:STDOUT: %T.binding.as_type => constants.%C -// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.9a0 +// CHECK:STDOUT: %T.as_type.loc7_27.1 => constants.%C +// CHECK:STDOUT: %I.impl_witness.loc7_34.2 => constants.%I.impl_witness.935 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F.type => constants.%T.binding.as_type.as.I.impl.F.type.9f7 -// CHECK:STDOUT: %T.binding.as_type.as.I.impl.F => constants.%T.binding.as_type.as.I.impl.F.698 +// CHECK:STDOUT: %T.as_type.as.I.impl.F.type => constants.%T.as_type.as.I.impl.F.type.6b7 +// CHECK:STDOUT: %T.as_type.as.I.impl.F => constants.%T.as_type.as.I.impl.F.1ec // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @UseI(constants.%I.facet.2df) { -// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.2df +// CHECK:STDOUT: specific @UseI(constants.%I.facet.da4) { +// CHECK:STDOUT: %T.loc11_10.1 => constants.%I.facet.da4 // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%C -// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.1b3 -// CHECK:STDOUT: %.loc11_19.2 => constants.%.a11 -// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.9a0 -// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.binding.as_type.as.I.impl.F.698 -// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.binding.as_type.as.I.impl.F.specific_fn.78c +// CHECK:STDOUT: %T.as_type.loc11_19.2 => constants.%C +// CHECK:STDOUT: %I.WithSelf.F.type => constants.%I.WithSelf.F.type.340 +// CHECK:STDOUT: %.loc11_19.2 => constants.%.cae +// CHECK:STDOUT: %I.lookup_impl_witness => constants.%I.impl_witness.935 +// CHECK:STDOUT: %impl.elem0.loc11_19.2 => constants.%T.as_type.as.I.impl.F.1ec +// CHECK:STDOUT: %specific_impl_fn.loc11_19.2 => constants.%T.as_type.as.I.impl.F.specific_fn.f29 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.2df) {} +// CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet.da4) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.2df) {} +// CHECK:STDOUT: specific @I.WithSelf.F(constants.%I.facet.da4) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @T.binding.as_type.as.I.impl.F(constants.%J.facet) { +// CHECK:STDOUT: specific @T.as_type.as.I.impl.F(constants.%J.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/generic.carbon b/toolchain/check/testdata/interface/generic.carbon index 70a2ee2befc6..d664886f8f0b 100644 --- a/toolchain/check/testdata/interface/generic.carbon +++ b/toolchain/check/testdata/interface/generic.carbon @@ -473,7 +473,7 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] // CHECK:STDOUT: %Self.b24: %Generic.type.cb7 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.3ee [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.3ee [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -564,13 +564,13 @@ fn F(unused T:! Generic((), ())) {} // CHECK:STDOUT: %T.loc10_7.1: %Generic.type.cb7 = symbolic_binding T, 0 [symbolic = %T.loc10_7.1 (constants.%T.3ee)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc10_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_6.2: type = facet_access_type %T.loc10_7.1 [symbolic = %T.as_type.loc18_6.2 (constants.%T.as_type)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref: %Generic.type.cb7 = name_ref T, %T.loc10_7.2 [symbolic = %T.loc10_7.1 (constants.%T.3ee)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc18_6.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc18_6.2 (constants.%T.as_type)] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/generic_method.carbon b/toolchain/check/testdata/interface/generic_method.carbon index eae0179e8e49..4fbc8c068721 100644 --- a/toolchain/check/testdata/interface/generic_method.carbon +++ b/toolchain/check/testdata/interface/generic_method.carbon @@ -100,10 +100,10 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.986: type = pattern_type %ptr.8f6 [symbolic] // CHECK:STDOUT: %tuple.type.f2d: type = tuple_type (type, %A.type.ade, type) [symbolic] // CHECK:STDOUT: %tuple.2c7: %tuple.type.f2d = tuple_value (%T.67d, %Self.362, %ptr.8f6) [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.7ec: type = symbolic_binding_type Self, 1, %Self.362 [symbolic] -// CHECK:STDOUT: %tuple.type.762: type = tuple_type (%T.67d, %Self.binding.as_type.7ec, %ptr.8f6) [symbolic] -// CHECK:STDOUT: %.54f: Core.Form = init_form %tuple.type.762 [symbolic] -// CHECK:STDOUT: %pattern_type.f66: type = pattern_type %tuple.type.762 [symbolic] +// CHECK:STDOUT: %Self.as_type.a6b: type = facet_access_type %Self.362 [symbolic] +// CHECK:STDOUT: %tuple.type.436: type = tuple_type (%T.67d, %Self.as_type.a6b, %ptr.8f6) [symbolic] +// CHECK:STDOUT: %.ada: Core.Form = init_form %tuple.type.436 [symbolic] +// CHECK:STDOUT: %pattern_type.c48: type = pattern_type %tuple.type.436 [symbolic] // CHECK:STDOUT: %A.WithSelf.F.type.0ed: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.362) [symbolic] // CHECK:STDOUT: %A.WithSelf.F.33a: %A.WithSelf.F.type.0ed = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type.9f4: type = assoc_entity_type @A, @A(%T.67d) [symbolic] @@ -199,25 +199,25 @@ fn CallIndirect() { // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %A.WithSelf.F.type.6cc: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.5da) [symbolic] // CHECK:STDOUT: %A.WithSelf.F.dc9: %A.WithSelf.F.type.6cc = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.833: type = symbolic_binding_type T, 0, %T.5da [symbolic] +// CHECK:STDOUT: %T.as_type.a42: type = facet_access_type %T.5da [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.5da, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.b04: %A.type.ab6 = facet_value %T.binding.as_type.833, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.416: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.b04) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.d39: %A.WithSelf.F.type.416 = struct_value () [symbolic] -// CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %A.WithSelf.F.type.416, %A.facet.b04 [symbolic] -// CHECK:STDOUT: %impl.elem0.138: %.8ed = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %tuple.2df: %tuple.type.f96 = tuple_value (%X, %A.facet.b04, %ptr.2a0) [symbolic] -// CHECK:STDOUT: %tuple.type.726: type = tuple_type (%X, %T.binding.as_type.833, %ptr.2a0) [symbolic] -// CHECK:STDOUT: %.ef7: Core.Form = init_form %tuple.type.726 [symbolic] -// CHECK:STDOUT: %pattern_type.41c: type = pattern_type %tuple.type.726 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.1d5: = specific_impl_function %impl.elem0.138, @A.WithSelf.F(%X, %A.facet.b04, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.b02: = require_complete_type %tuple.type.726 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.6c0: = lookup_impl_witness %tuple.type.726, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.f94: %Destroy.type = facet_value %tuple.type.726, (%Destroy.lookup_impl_witness.6c0) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.3e6: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.f94) [symbolic] -// CHECK:STDOUT: %.29b: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.3e6, %Destroy.facet.f94 [symbolic] -// CHECK:STDOUT: %impl.elem0.571: %.29b = impl_witness_access %Destroy.lookup_impl_witness.6c0, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.a73: = specific_impl_function %impl.elem0.571, @Destroy.WithSelf.Op(%Destroy.facet.f94) [symbolic] +// CHECK:STDOUT: %A.facet.6c9: %A.type.ab6 = facet_value %T.as_type.a42, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.c68: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.6c9) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.85f: %A.WithSelf.F.type.c68 = struct_value () [symbolic] +// CHECK:STDOUT: %.55f: type = fn_type_with_self_type %A.WithSelf.F.type.c68, %A.facet.6c9 [symbolic] +// CHECK:STDOUT: %impl.elem0.e13: %.55f = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %tuple.e1d: %tuple.type.f96 = tuple_value (%X, %A.facet.6c9, %ptr.2a0) [symbolic] +// CHECK:STDOUT: %tuple.type.e04: type = tuple_type (%X, %T.as_type.a42, %ptr.2a0) [symbolic] +// CHECK:STDOUT: %.17a5: Core.Form = init_form %tuple.type.e04 [symbolic] +// CHECK:STDOUT: %pattern_type.ba3: type = pattern_type %tuple.type.e04 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.105: = specific_impl_function %impl.elem0.e13, @A.WithSelf.F(%X, %A.facet.6c9, %Z) [symbolic] +// CHECK:STDOUT: %require_complete.346: = require_complete_type %tuple.type.e04 [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.63a: = lookup_impl_witness %tuple.type.e04, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.34d: %Destroy.type = facet_value %tuple.type.e04, (%Destroy.lookup_impl_witness.63a) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.8ca: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.34d) [symbolic] +// CHECK:STDOUT: %.9ba: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.8ca, %Destroy.facet.34d [symbolic] +// CHECK:STDOUT: %impl.elem0.b26: %.9ba = impl_witness_access %Destroy.lookup_impl_witness.63a, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.c5c: = specific_impl_function %impl.elem0.b26, @Destroy.WithSelf.Op(%Destroy.facet.34d) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %Y, (%A.impl_witness, %custom_witness.8d7fae.3) [concrete] @@ -325,8 +325,8 @@ fn CallIndirect() { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.986) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.f66) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.f66) = return_slot_pattern %return.param_patt, %.loc6_40.4 [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.c48) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_40 (%pattern_type.c48) = return_slot_pattern %return.param_patt, %.loc6_40.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_14.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc6_32: @A.WithSelf.F.%A.type (%A.type.ade) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.362)] @@ -334,10 +334,10 @@ fn CallIndirect() { // CHECK:STDOUT: %U.ref.loc6_38: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %ptr.loc6_39: type = ptr_type %U.ref.loc6_38 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] // CHECK:STDOUT: %.loc6_40.2: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.f2d) = tuple_literal (%T.ref, %Self.ref, %ptr.loc6_39) [symbolic = %tuple (constants.%tuple.2c7)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type constants.%Self.362 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %.loc6_40.3: type = converted constants.%Self.362, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %.loc6_40.4: type = converted %.loc6_40.2, constants.%tuple.type.762 [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.762)] -// CHECK:STDOUT: %.loc6_40.5: Core.Form = init_form %.loc6_40.4 [symbolic = %.loc6_40.1 (constants.%.54f)] +// CHECK:STDOUT: %Self.as_type.loc6_40.2: type = facet_access_type constants.%Self.362 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %.loc6_40.3: type = converted constants.%Self.362, %Self.as_type.loc6_40.2 [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %.loc6_40.4: type = converted %.loc6_40.2, constants.%tuple.type.436 [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.436)] +// CHECK:STDOUT: %.loc6_40.5: Core.Form = init_form %.loc6_40.4 [symbolic = %.loc6_40.1 (constants.%.ada)] // CHECK:STDOUT: %.loc6_12.1: type = splice_block %.loc6_12.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc6_12.2: type = type_literal type [concrete = type] @@ -349,8 +349,8 @@ fn CallIndirect() { // CHECK:STDOUT: %ptr.loc6_22.2: type = ptr_type %U.ref.loc6_21 [symbolic = %ptr.loc6_22.1 (constants.%ptr.8f6)] // CHECK:STDOUT: } // CHECK:STDOUT: %u: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.762) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.762) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.436) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.436) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_41.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.9f4) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_41.2 (constants.%assoc0.146)] // CHECK:STDOUT: @@ -437,12 +437,12 @@ fn CallIndirect() { // CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.362)] // CHECK:STDOUT: %tuple.type.loc6_40.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_40.1 (constants.%tuple.type.f2d)] // CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_40.1 (%tuple.type.f2d) = tuple_value (%T, %Self, %ptr.loc6_22.1) [symbolic = %tuple (constants.%tuple.2c7)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %tuple.type.loc6_40.2: type = tuple_type (%T, %Self.binding.as_type, %ptr.loc6_22.1) [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.762)] -// CHECK:STDOUT: %.loc6_40.1: Core.Form = init_form %tuple.type.loc6_40.2 [symbolic = %.loc6_40.1 (constants.%.54f)] -// CHECK:STDOUT: %pattern_type.loc6_40: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_40 (constants.%pattern_type.f66)] +// CHECK:STDOUT: %Self.as_type.loc6_40.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_40.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %tuple.type.loc6_40.2: type = tuple_type (%T, %Self.as_type.loc6_40.1, %ptr.loc6_22.1) [symbolic = %tuple.type.loc6_40.2 (constants.%tuple.type.436)] +// CHECK:STDOUT: %.loc6_40.1: Core.Form = init_form %tuple.type.loc6_40.2 [symbolic = %.loc6_40.1 (constants.%.ada)] +// CHECK:STDOUT: %pattern_type.loc6_40: type = pattern_type %tuple.type.loc6_40.2 [symbolic = %pattern_type.loc6_40 (constants.%pattern_type.c48)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.762); +// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%ptr.loc6_22.1 (%ptr.8f6)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_40.2 (%tuple.type.436); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @Y.as.A.impl.F(%U.loc16_9.2: type) { @@ -561,21 +561,21 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc26_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc26_17.1 (constants.%T.5da)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc26_17.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type.833)] +// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc26_17.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.a42)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc26_17.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.ab6 = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.b04)] -// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.416)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.8ed)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.8ed) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.138)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.1d5)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.binding.as_type, constants.%ptr.2a0) [symbolic = %tuple.type (constants.%tuple.type.726)] -// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.b02)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.6c0)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.f94)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.3e6)] -// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.29b)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.29b) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.571)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.a73)] +// CHECK:STDOUT: %A.facet: %A.type.ab6 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.6c9)] +// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.c68)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.55f)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.55f) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.e13)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.105)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%ptr.2a0) [symbolic = %tuple.type (constants.%tuple.type.e04)] +// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.346)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.63a)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.34d)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.8ca)] +// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.9ba)] +// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.9ba) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.b26)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.c5c)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -595,21 +595,21 @@ fn CallIndirect() { // CHECK:STDOUT: %Z.ref.loc27: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u: ref %Z = ref_binding u, %u.var // CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc26_17.2 [symbolic = %T.loc26_17.1 (constants.%T.5da)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type.833)] -// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type.833)] +// CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.a42)] +// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type.a42)] // CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.f05 = specific_constant @A.WithSelf.%assoc0.loc6_41.1, @A.WithSelf(constants.%X, constants.%T.5da) [concrete = constants.%assoc0.368] // CHECK:STDOUT: %F.ref: %A.assoc_type.f05 = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.368] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.8ed) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.138)] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.55f) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.e13)] // CHECK:STDOUT: %Z.ref.loc28: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %u.ref: ref %Z = name_ref u, %u // CHECK:STDOUT: %addr: %ptr.2a0 = addr_of %u.ref -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.b04, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.1d5)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.726) = temporary_storage -// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.726) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%addr) -// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.726) = temporary %.loc28_12.1, %A.WithSelf.F.call -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.29b) = impl_witness_access constants.%Destroy.lookup_impl_witness.6c0, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.571)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.6c9, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.105)] +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.e04) = temporary_storage +// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.e04) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%addr) +// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.e04) = temporary %.loc28_12.1, %A.WithSelf.F.call +// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.9ba) = impl_witness_access constants.%Destroy.lookup_impl_witness.63a, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.b26)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.2, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.f94) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.a73)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.34d) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.c5c)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.2, %specific_impl_fn.loc28_12.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) // CHECK:STDOUT: %Destroy.Op.bound: = bound_method %u.var, constants.%Destroy.Op.651ba6.6 @@ -644,10 +644,10 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%Self.362 // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.f2d // CHECK:STDOUT: %tuple => constants.%tuple.2c7 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.7ec -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.762 -// CHECK:STDOUT: %.loc6_40.1 => constants.%.54f -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.f66 +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Self.as_type.a6b +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.436 +// CHECK:STDOUT: %.loc6_40.1 => constants.%.ada +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.c48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%X) { @@ -699,7 +699,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%A.facet.04e // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.f96 // CHECK:STDOUT: %tuple => constants.%tuple.5c5 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Y +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.244 // CHECK:STDOUT: %.loc6_40.1 => constants.%.0dc // CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.06d @@ -742,37 +742,37 @@ fn CallIndirect() { // CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.368 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.b04) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.6c9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 -// CHECK:STDOUT: %Self => constants.%A.facet.b04 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.416 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.d39 +// CHECK:STDOUT: %Self => constants.%A.facet.6c9 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.c68 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.85f // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.f05 // CHECK:STDOUT: %assoc0.loc6_41.2 => constants.%assoc0.368 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.b04, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.6c9, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z // CHECK:STDOUT: %ptr.loc6_22.1 => constants.%ptr.2a0 // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.771 // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 -// CHECK:STDOUT: %Self => constants.%A.facet.b04 +// CHECK:STDOUT: %Self => constants.%A.facet.6c9 // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.f96 -// CHECK:STDOUT: %tuple => constants.%tuple.2df -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type.833 -// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.726 -// CHECK:STDOUT: %.loc6_40.1 => constants.%.ef7 -// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.41c +// CHECK:STDOUT: %tuple => constants.%tuple.e1d +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%T.as_type.a42 +// CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.e04 +// CHECK:STDOUT: %.loc6_40.1 => constants.%.17a5 +// CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.ba3 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%facet_value) { // CHECK:STDOUT: %T.loc26_17.1 => constants.%facet_value // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%Y +// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%Y // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness // CHECK:STDOUT: %A.facet => constants.%A.facet.04e // CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.12f @@ -798,7 +798,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%A.facet.04e // CHECK:STDOUT: %tuple.type.loc6_40.1 => constants.%tuple.type.f96 // CHECK:STDOUT: %tuple => constants.%tuple.6cd -// CHECK:STDOUT: %Self.binding.as_type => constants.%Y +// CHECK:STDOUT: %Self.as_type.loc6_40.1 => constants.%Y // CHECK:STDOUT: %tuple.type.loc6_40.2 => constants.%tuple.type.847 // CHECK:STDOUT: %.loc6_40.1 => constants.%.88e // CHECK:STDOUT: %pattern_type.loc6_40 => constants.%pattern_type.79c @@ -820,10 +820,10 @@ fn CallIndirect() { // CHECK:STDOUT: %pattern_type.62e: type = pattern_type %U.4e7 [symbolic] // CHECK:STDOUT: %tuple.type.f2d: type = tuple_type (type, %A.type.ade, type) [symbolic] // CHECK:STDOUT: %tuple.f25: %tuple.type.f2d = tuple_value (%T.67d, %Self.362, %U.4e7) [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.7ec: type = symbolic_binding_type Self, 1, %Self.362 [symbolic] -// CHECK:STDOUT: %tuple.type.7f3: type = tuple_type (%T.67d, %Self.binding.as_type.7ec, %U.4e7) [symbolic] -// CHECK:STDOUT: %.0ad: Core.Form = init_form %tuple.type.7f3 [symbolic] -// CHECK:STDOUT: %pattern_type.22d: type = pattern_type %tuple.type.7f3 [symbolic] +// CHECK:STDOUT: %Self.as_type.a6b: type = facet_access_type %Self.362 [symbolic] +// CHECK:STDOUT: %tuple.type.0af: type = tuple_type (%T.67d, %Self.as_type.a6b, %U.4e7) [symbolic] +// CHECK:STDOUT: %.74e: Core.Form = init_form %tuple.type.0af [symbolic] +// CHECK:STDOUT: %pattern_type.248: type = pattern_type %tuple.type.0af [symbolic] // CHECK:STDOUT: %A.WithSelf.F.type.0ed: type = fn_type @A.WithSelf.F, @A.WithSelf(%T.67d, %Self.362) [symbolic] // CHECK:STDOUT: %A.WithSelf.F.33a: %A.WithSelf.F.type.0ed = struct_value () [symbolic] // CHECK:STDOUT: %A.assoc_type.9f4: type = assoc_entity_type @A, @A(%T.67d) [symbolic] @@ -922,26 +922,26 @@ fn CallIndirect() { // CHECK:STDOUT: %CallGeneric: %CallGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %A.WithSelf.F.type.6cc: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %T.5da) [symbolic] // CHECK:STDOUT: %A.WithSelf.F.dc9: %A.WithSelf.F.type.6cc = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.5da [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.5da [symbolic] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.5da, @A, @A(%X) [symbolic] -// CHECK:STDOUT: %A.facet.b04: %A.type.ab6 = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.type.416: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.b04) [symbolic] -// CHECK:STDOUT: %A.WithSelf.F.d39: %A.WithSelf.F.type.416 = struct_value () [symbolic] -// CHECK:STDOUT: %.8ed: type = fn_type_with_self_type %A.WithSelf.F.type.416, %A.facet.b04 [symbolic] -// CHECK:STDOUT: %impl.elem0.138: %.8ed = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %A.facet.6c9: %A.type.ab6 = facet_value %T.as_type, (%A.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.type.c68: type = fn_type @A.WithSelf.F, @A.WithSelf(%X, %A.facet.6c9) [symbolic] +// CHECK:STDOUT: %A.WithSelf.F.85f: %A.WithSelf.F.type.c68 = struct_value () [symbolic] +// CHECK:STDOUT: %.55f: type = fn_type_with_self_type %A.WithSelf.F.type.c68, %A.facet.6c9 [symbolic] +// CHECK:STDOUT: %impl.elem0.e13: %.55f = impl_witness_access %A.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %tuple.type.f96: type = tuple_type (type, %A.type.ab6, type) [concrete] -// CHECK:STDOUT: %tuple.5a0: %tuple.type.f96 = tuple_value (%X, %A.facet.b04, %Z) [symbolic] -// CHECK:STDOUT: %tuple.type.f23: type = tuple_type (%X, %T.binding.as_type, %Z) [symbolic] -// CHECK:STDOUT: %.c4a: Core.Form = init_form %tuple.type.f23 [symbolic] -// CHECK:STDOUT: %pattern_type.434: type = pattern_type %tuple.type.f23 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.1d5: = specific_impl_function %impl.elem0.138, @A.WithSelf.F(%X, %A.facet.b04, %Z) [symbolic] -// CHECK:STDOUT: %require_complete.247: = require_complete_type %tuple.type.f23 [symbolic] -// CHECK:STDOUT: %Destroy.lookup_impl_witness.74b: = lookup_impl_witness %tuple.type.f23, @Destroy [symbolic] -// CHECK:STDOUT: %Destroy.facet.8b5: %Destroy.type = facet_value %tuple.type.f23, (%Destroy.lookup_impl_witness.74b) [symbolic] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type.209: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.8b5) [symbolic] -// CHECK:STDOUT: %.509: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.209, %Destroy.facet.8b5 [symbolic] -// CHECK:STDOUT: %impl.elem0.243: %.509 = impl_witness_access %Destroy.lookup_impl_witness.74b, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.d18: = specific_impl_function %impl.elem0.243, @Destroy.WithSelf.Op(%Destroy.facet.8b5) [symbolic] +// CHECK:STDOUT: %tuple.670: %tuple.type.f96 = tuple_value (%X, %A.facet.6c9, %Z) [symbolic] +// CHECK:STDOUT: %tuple.type.96e: type = tuple_type (%X, %T.as_type, %Z) [symbolic] +// CHECK:STDOUT: %.600: Core.Form = init_form %tuple.type.96e [symbolic] +// CHECK:STDOUT: %pattern_type.53d: type = pattern_type %tuple.type.96e [symbolic] +// CHECK:STDOUT: %specific_impl_fn.105: = specific_impl_function %impl.elem0.e13, @A.WithSelf.F(%X, %A.facet.6c9, %Z) [symbolic] +// CHECK:STDOUT: %require_complete.c32: = require_complete_type %tuple.type.96e [symbolic] +// CHECK:STDOUT: %Destroy.lookup_impl_witness.b4f: = lookup_impl_witness %tuple.type.96e, @Destroy [symbolic] +// CHECK:STDOUT: %Destroy.facet.541: %Destroy.type = facet_value %tuple.type.96e, (%Destroy.lookup_impl_witness.b4f) [symbolic] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type.1af: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet.541) [symbolic] +// CHECK:STDOUT: %.240: type = fn_type_with_self_type %Destroy.WithSelf.Op.type.1af, %Destroy.facet.541 [symbolic] +// CHECK:STDOUT: %impl.elem0.634: %.240 = impl_witness_access %Destroy.lookup_impl_witness.b4f, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.be7: = specific_impl_function %impl.elem0.634, @Destroy.WithSelf.Op(%Destroy.facet.541) [symbolic] // CHECK:STDOUT: %CallIndirect.type: type = fn_type @CallIndirect [concrete] // CHECK:STDOUT: %CallIndirect: %CallIndirect.type = struct_value () [concrete] // CHECK:STDOUT: %facet_value: %facet_type = facet_value %tuple.type.ab2, (%A.impl_witness.b3a, %custom_witness.8d7fae.5) [concrete] @@ -1055,18 +1055,18 @@ fn CallIndirect() { // CHECK:STDOUT: %U.patt: %pattern_type.98f = symbolic_binding_pattern U, 2 [concrete] // CHECK:STDOUT: %u.param_patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = value_param_pattern [concrete] // CHECK:STDOUT: %u.patt: @A.WithSelf.F.%pattern_type.loc6_19 (%pattern_type.62e) = at_binding_pattern u, %u.param_patt [concrete] -// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.22d) = out_param_pattern [concrete] -// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.22d) = return_slot_pattern %return.param_patt, %.loc6_38.4 [concrete] +// CHECK:STDOUT: %return.param_patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.248) = out_param_pattern [concrete] +// CHECK:STDOUT: %return.patt: @A.WithSelf.F.%pattern_type.loc6_38 (%pattern_type.248) = return_slot_pattern %return.param_patt, %.loc6_38.4 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @A.%T.loc5_14.2 [symbolic = %T (constants.%T.67d)] // CHECK:STDOUT: %.loc6_31: @A.WithSelf.F.%A.type (%A.type.ade) = specific_constant @A.%Self.loc5_23.1, @A(constants.%T.67d) [symbolic = %Self (constants.%Self.362)] // CHECK:STDOUT: %Self.ref: @A.WithSelf.F.%A.type (%A.type.ade) = name_ref Self, %.loc6_31 [symbolic = %Self (constants.%Self.362)] // CHECK:STDOUT: %U.ref.loc6_37: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %.loc6_38.2: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.f2d) = tuple_literal (%T.ref, %Self.ref, %U.ref.loc6_37) [symbolic = %tuple (constants.%tuple.f25)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type constants.%Self.362 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %.loc6_38.3: type = converted constants.%Self.362, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %.loc6_38.4: type = converted %.loc6_38.2, constants.%tuple.type.7f3 [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.7f3)] -// CHECK:STDOUT: %.loc6_38.5: Core.Form = init_form %.loc6_38.4 [symbolic = %.loc6_38.1 (constants.%.0ad)] +// CHECK:STDOUT: %Self.as_type.loc6_38.2: type = facet_access_type constants.%Self.362 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %.loc6_38.3: type = converted constants.%Self.362, %Self.as_type.loc6_38.2 [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %.loc6_38.4: type = converted %.loc6_38.2, constants.%tuple.type.0af [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.0af)] +// CHECK:STDOUT: %.loc6_38.5: Core.Form = init_form %.loc6_38.4 [symbolic = %.loc6_38.1 (constants.%.74e)] // CHECK:STDOUT: %.loc6_12.1: type = splice_block %.loc6_12.2 [concrete = type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.loc6_12.2: type = type_literal type [concrete = type] @@ -1075,8 +1075,8 @@ fn CallIndirect() { // CHECK:STDOUT: %u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7) = value_param call_param0 // CHECK:STDOUT: %U.ref.loc6_21: type = name_ref U, %U.loc6_9.2 [symbolic = %U.loc6_9.1 (constants.%U.4e7)] // CHECK:STDOUT: %u: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7) = value_binding u, %u.param -// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.7f3) = out_param call_param1 -// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.7f3) = return_slot %return.param +// CHECK:STDOUT: %return.param: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.0af) = out_param call_param1 +// CHECK:STDOUT: %return: ref @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.0af) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0.loc6_39.1: @A.WithSelf.%A.assoc_type (%A.assoc_type.9f4) = assoc_entity element0, %A.WithSelf.F.decl [symbolic = %assoc0.loc6_39.2 (constants.%assoc0.146)] // CHECK:STDOUT: @@ -1185,12 +1185,12 @@ fn CallIndirect() { // CHECK:STDOUT: %Self: @A.WithSelf.F.%A.type (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.362)] // CHECK:STDOUT: %tuple.type.loc6_38.1: type = tuple_type (type, %A.type, type) [symbolic = %tuple.type.loc6_38.1 (constants.%tuple.type.f2d)] // CHECK:STDOUT: %tuple: @A.WithSelf.F.%tuple.type.loc6_38.1 (%tuple.type.f2d) = tuple_value (%T, %Self, %U.loc6_9.1) [symbolic = %tuple (constants.%tuple.f25)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.7ec)] -// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.binding.as_type, %U.loc6_9.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.7f3)] -// CHECK:STDOUT: %.loc6_38.1: Core.Form = init_form %tuple.type.loc6_38.2 [symbolic = %.loc6_38.1 (constants.%.0ad)] -// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.22d)] +// CHECK:STDOUT: %Self.as_type.loc6_38.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc6_38.1 (constants.%Self.as_type.a6b)] +// CHECK:STDOUT: %tuple.type.loc6_38.2: type = tuple_type (%T, %Self.as_type.loc6_38.1, %U.loc6_9.1) [symbolic = %tuple.type.loc6_38.2 (constants.%tuple.type.0af)] +// CHECK:STDOUT: %.loc6_38.1: Core.Form = init_form %tuple.type.loc6_38.2 [symbolic = %.loc6_38.1 (constants.%.74e)] +// CHECK:STDOUT: %pattern_type.loc6_38: type = pattern_type %tuple.type.loc6_38.2 [symbolic = %pattern_type.loc6_38 (constants.%pattern_type.248)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.7f3); +// CHECK:STDOUT: fn(%u.param: @A.WithSelf.F.%U.loc6_9.1 (%U.4e7)) -> out %return.param: @A.WithSelf.F.%tuple.type.loc6_38.2 (%tuple.type.0af); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @tuple.type.as.A.impl.F(@tuple.type.as.A.impl.%V1.loc14_16.2: type, @tuple.type.as.A.impl.%V2.loc14_27.2: type, @tuple.type.as.A.impl.%W.loc14_37.2: type, %U.loc17_9.2: type) { @@ -1296,44 +1296,44 @@ fn CallIndirect() { // CHECK:STDOUT: %T.loc27_17.1: %facet_type = symbolic_binding T, 0 [symbolic = %T.loc27_17.1 (constants.%T.5da)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc27_17.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc28_4.2: type = facet_access_type %T.loc27_17.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %T.loc27_17.1, @A, @A(constants.%X) [symbolic = %A.lookup_impl_witness (constants.%A.lookup_impl_witness)] -// CHECK:STDOUT: %A.facet: %A.type.ab6 = facet_value %T.binding.as_type, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.b04)] -// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.416)] -// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.8ed)] -// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.8ed) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.138)] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.1d5)] -// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.binding.as_type, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.f23)] -// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.247)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.74b)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.8b5)] -// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.209)] -// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.509)] -// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.509) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.243)] -// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.d18)] +// CHECK:STDOUT: %A.facet: %A.type.ab6 = facet_value %T.as_type.loc28_4.2, (%A.lookup_impl_witness) [symbolic = %A.facet (constants.%A.facet.6c9)] +// CHECK:STDOUT: %A.WithSelf.F.type: type = fn_type @A.WithSelf.F, @A.WithSelf(constants.%X, %A.facet) [symbolic = %A.WithSelf.F.type (constants.%A.WithSelf.F.type.c68)] +// CHECK:STDOUT: %.loc28_4.3: type = fn_type_with_self_type %A.WithSelf.F.type, %A.facet [symbolic = %.loc28_4.3 (constants.%.55f)] +// CHECK:STDOUT: %impl.elem0.loc28_4.2: @CallGeneric.%.loc28_4.3 (%.55f) = impl_witness_access %A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.e13)] +// CHECK:STDOUT: %specific_impl_fn.loc28_4.2: = specific_impl_function %impl.elem0.loc28_4.2, @A.WithSelf.F(constants.%X, %A.facet, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.105)] +// CHECK:STDOUT: %tuple.type: type = tuple_type (constants.%X, %T.as_type.loc28_4.2, constants.%Z) [symbolic = %tuple.type (constants.%tuple.type.96e)] +// CHECK:STDOUT: %require_complete: = require_complete_type %tuple.type [symbolic = %require_complete (constants.%require_complete.c32)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %tuple.type, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness.b4f)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %tuple.type, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet.541)] +// CHECK:STDOUT: %Destroy.WithSelf.Op.type: type = fn_type @Destroy.WithSelf.Op, @Destroy.WithSelf(%Destroy.facet) [symbolic = %Destroy.WithSelf.Op.type (constants.%Destroy.WithSelf.Op.type.1af)] +// CHECK:STDOUT: %.loc28_12.3: type = fn_type_with_self_type %Destroy.WithSelf.Op.type, %Destroy.facet [symbolic = %.loc28_12.3 (constants.%.240)] +// CHECK:STDOUT: %impl.elem0.loc28_12.2: @CallGeneric.%.loc28_12.3 (%.240) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.634)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.2: = specific_impl_function %impl.elem0.loc28_12.2, @Destroy.WithSelf.Op(%Destroy.facet) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.be7)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref: %facet_type = name_ref T, %T.loc27_17.2 [symbolic = %T.loc27_17.1 (constants.%T.5da)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc28_4.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc28_4.1: type = converted %T.ref, %T.as_type.loc28_4.1 [symbolic = %T.as_type.loc28_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %.loc28_4.2: %A.assoc_type.f05 = specific_constant @A.WithSelf.%assoc0.loc6_39.1, @A.WithSelf(constants.%X, constants.%T.5da) [concrete = constants.%assoc0.368] // CHECK:STDOUT: %F.ref: %A.assoc_type.f05 = name_ref F, %.loc28_4.2 [concrete = constants.%assoc0.368] -// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.8ed) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.138)] +// CHECK:STDOUT: %impl.elem0.loc28_4.1: @CallGeneric.%.loc28_4.3 (%.55f) = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc28_4.2 (constants.%impl.elem0.e13)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z] // CHECK:STDOUT: %.loc28_11.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] -// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.b04, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.1d5)] -// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.f23) = temporary_storage +// CHECK:STDOUT: %specific_impl_fn.loc28_4.1: = specific_impl_function %impl.elem0.loc28_4.1, @A.WithSelf.F(constants.%X, constants.%A.facet.6c9, constants.%Z) [symbolic = %specific_impl_fn.loc28_4.2 (constants.%specific_impl_fn.105)] +// CHECK:STDOUT: %.loc28_12.1: ref @CallGeneric.%tuple.type (%tuple.type.96e) = temporary_storage // CHECK:STDOUT: %.loc28_11.2: ref %Z = temporary_storage // CHECK:STDOUT: %.loc28_11.3: init %Z to %.loc28_11.2 = class_init () [concrete = constants.%Z.val] // CHECK:STDOUT: %.loc28_11.4: init %Z = converted %.loc28_11.1, %.loc28_11.3 [concrete = constants.%Z.val] // CHECK:STDOUT: %.loc28_11.5: ref %Z = temporary %.loc28_11.2, %.loc28_11.4 [concrete = constants.%.318] // CHECK:STDOUT: %.loc28_11.6: %Z = acquire_value %.loc28_11.5 [concrete = constants.%Z.val] -// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.f23) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) -// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.f23) = temporary %.loc28_12.1, %A.WithSelf.F.call -// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.509) = impl_witness_access constants.%Destroy.lookup_impl_witness.74b, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.243)] +// CHECK:STDOUT: %A.WithSelf.F.call: init @CallGeneric.%tuple.type (%tuple.type.96e) to %.loc28_12.1 = call %specific_impl_fn.loc28_4.1(%.loc28_11.6) +// CHECK:STDOUT: %.loc28_12.2: ref @CallGeneric.%tuple.type (%tuple.type.96e) = temporary %.loc28_12.1, %A.WithSelf.F.call +// CHECK:STDOUT: %impl.elem0.loc28_12.1: @CallGeneric.%.loc28_12.3 (%.240) = impl_witness_access constants.%Destroy.lookup_impl_witness.b4f, element0 [symbolic = %impl.elem0.loc28_12.2 (constants.%impl.elem0.634)] // CHECK:STDOUT: %bound_method.loc28_12.1: = bound_method %.loc28_12.2, %impl.elem0.loc28_12.1 -// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.8b5) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.d18)] +// CHECK:STDOUT: %specific_impl_fn.loc28_12.1: = specific_impl_function %impl.elem0.loc28_12.1, @Destroy.WithSelf.Op(constants.%Destroy.facet.541) [symbolic = %specific_impl_fn.loc28_12.2 (constants.%specific_impl_fn.be7)] // CHECK:STDOUT: %bound_method.loc28_12.2: = bound_method %.loc28_12.2, %specific_impl_fn.loc28_12.1 // CHECK:STDOUT: %Destroy.WithSelf.Op.call: init %empty_tuple.type = call %bound_method.loc28_12.2(%.loc28_12.2) // CHECK:STDOUT: %Destroy.Op.call: init %empty_tuple.type = call constants.%Destroy.Op.bound(constants.%.318) @@ -1370,10 +1370,10 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%Self.362 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.f2d // CHECK:STDOUT: %tuple => constants.%tuple.f25 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.7ec -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.7f3 -// CHECK:STDOUT: %.loc6_38.1 => constants.%.0ad -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.22d +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%Self.as_type.a6b +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.0af +// CHECK:STDOUT: %.loc6_38.1 => constants.%.74e +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.248 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%W) { @@ -1450,7 +1450,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%A.facet.56b // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.52a // CHECK:STDOUT: %tuple => constants.%tuple.ec4 -// CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.a5e +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.a5e // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.897 // CHECK:STDOUT: %.loc6_38.1 => constants.%.f8e // CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.5cc @@ -1537,36 +1537,36 @@ fn CallIndirect() { // CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.368 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.b04) { +// CHECK:STDOUT: specific @A.WithSelf(constants.%X, constants.%A.facet.6c9) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 -// CHECK:STDOUT: %Self => constants.%A.facet.b04 -// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.416 -// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.d39 +// CHECK:STDOUT: %Self => constants.%A.facet.6c9 +// CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.c68 +// CHECK:STDOUT: %A.WithSelf.F => constants.%A.WithSelf.F.85f // CHECK:STDOUT: %A.assoc_type => constants.%A.assoc_type.f05 // CHECK:STDOUT: %assoc0.loc6_39.2 => constants.%assoc0.368 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.b04, constants.%Z) { +// CHECK:STDOUT: specific @A.WithSelf.F(constants.%X, constants.%A.facet.6c9, constants.%Z) { // CHECK:STDOUT: %U.loc6_9.1 => constants.%Z // CHECK:STDOUT: %pattern_type.loc6_19 => constants.%pattern_type.bdb // CHECK:STDOUT: %T => constants.%X // CHECK:STDOUT: %A.type => constants.%A.type.ab6 -// CHECK:STDOUT: %Self => constants.%A.facet.b04 +// CHECK:STDOUT: %Self => constants.%A.facet.6c9 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.f96 -// CHECK:STDOUT: %tuple => constants.%tuple.5a0 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.f23 -// CHECK:STDOUT: %.loc6_38.1 => constants.%.c4a -// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.434 +// CHECK:STDOUT: %tuple => constants.%tuple.670 +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%T.as_type +// CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.96e +// CHECK:STDOUT: %.loc6_38.1 => constants.%.600 +// CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.53d // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @CallGeneric(constants.%facet_value) { // CHECK:STDOUT: %T.loc27_17.1 => constants.%facet_value // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type => constants.%tuple.type.ab2 +// CHECK:STDOUT: %T.as_type.loc28_4.2 => constants.%tuple.type.ab2 // CHECK:STDOUT: %A.lookup_impl_witness => constants.%A.impl_witness.b3a // CHECK:STDOUT: %A.facet => constants.%A.facet.906 // CHECK:STDOUT: %A.WithSelf.F.type => constants.%A.WithSelf.F.type.757 @@ -1591,7 +1591,7 @@ fn CallIndirect() { // CHECK:STDOUT: %Self => constants.%A.facet.906 // CHECK:STDOUT: %tuple.type.loc6_38.1 => constants.%tuple.type.f96 // CHECK:STDOUT: %tuple => constants.%tuple.5e4 -// CHECK:STDOUT: %Self.binding.as_type => constants.%tuple.type.ab2 +// CHECK:STDOUT: %Self.as_type.loc6_38.1 => constants.%tuple.type.ab2 // CHECK:STDOUT: %tuple.type.loc6_38.2 => constants.%tuple.type.65a // CHECK:STDOUT: %.loc6_38.1 => constants.%.241 // CHECK:STDOUT: %pattern_type.loc6_38 => constants.%pattern_type.30b diff --git a/toolchain/check/testdata/interface/incomplete.carbon b/toolchain/check/testdata/interface/incomplete.carbon index 38de373c210b..72c3dfbcb342 100644 --- a/toolchain/check/testdata/interface/incomplete.carbon +++ b/toolchain/check/testdata/interface/incomplete.carbon @@ -150,7 +150,7 @@ interface A(T:! type) { // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: %C = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: } @@ -168,8 +168,8 @@ interface A(T:! type) { // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %C = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc16_27: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -227,11 +227,11 @@ interface A(T:! type) { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %U: %I.type = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %U.as_type: type = facet_access_type %U [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %U.as_type [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type [symbolic] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %U, @I [symbolic] // CHECK:STDOUT: %impl.elem0: %C = impl_witness_access %I.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: } @@ -246,21 +246,21 @@ interface A(T:! type) { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %U.patt: %pattern_type.9d9 = symbolic_binding_pattern U, 0 [concrete] -// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.422) = value_param_pattern [concrete] -// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.422) = at_binding_pattern a, %a.param_patt [concrete] +// CHECK:STDOUT: %a.param_patt: @F.%pattern_type (%pattern_type.f4e) = value_param_pattern [concrete] +// CHECK:STDOUT: %a.patt: @F.%pattern_type (%pattern_type.f4e) = at_binding_pattern a, %a.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc9_10: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc9_7.2: %I.type = symbolic_binding U, 0 [symbolic = %U.loc9_7.1 (constants.%U)] -// CHECK:STDOUT: %a.param: @F.%U.binding.as_type (%U.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] { +// CHECK:STDOUT: %a.param: @F.%U.as_type.loc9_16.1 (%U.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_16.1: type = splice_block %.loc9_16.2 [symbolic = %U.as_type.loc9_16.1 (constants.%U.as_type)] { // CHECK:STDOUT: %U.ref: %I.type = name_ref U, %U.loc9_7.2 [symbolic = %U.loc9_7.1 (constants.%U)] -// CHECK:STDOUT: %U.as_type: type = facet_access_type %U.ref [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %.loc9_16.2: type = converted %U.ref, %U.as_type [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] +// CHECK:STDOUT: %U.as_type.loc9_16.2: type = facet_access_type %U.ref [symbolic = %U.as_type.loc9_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %.loc9_16.2: type = converted %U.ref, %U.as_type.loc9_16.2 [symbolic = %U.as_type.loc9_16.1 (constants.%U.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %a: @F.%U.binding.as_type (%U.binding.as_type) = value_binding a, %a.param +// CHECK:STDOUT: %a: @F.%U.as_type.loc9_16.1 (%U.as_type) = value_binding a, %a.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: @@ -287,17 +287,17 @@ interface A(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%U.loc9_7.2: %I.type) { // CHECK:STDOUT: %U.loc9_7.1: %I.type = symbolic_binding U, 0 [symbolic = %U.loc9_7.1 (constants.%U)] -// CHECK:STDOUT: %U.binding.as_type: type = symbolic_binding_type U, 0, %U.loc9_7.1 [symbolic = %U.binding.as_type (constants.%U.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %U.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %U.as_type.loc9_16.1: type = facet_access_type %U.loc9_7.1 [symbolic = %U.as_type.loc9_16.1 (constants.%U.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %U.as_type.loc9_16.1 [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %U.binding.as_type [symbolic = %require_complete (constants.%require_complete)] +// CHECK:STDOUT: %require_complete: = require_complete_type %U.as_type.loc9_16.1 [symbolic = %require_complete (constants.%require_complete)] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %U.loc9_7.1, @I [symbolic = %I.lookup_impl_witness (constants.%I.lookup_impl_witness)] // CHECK:STDOUT: %impl.elem0.loc11_4.2: %C = impl_witness_access %I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%a.param: @F.%U.binding.as_type (%U.binding.as_type)) { +// CHECK:STDOUT: fn(%a.param: @F.%U.as_type.loc9_16.1 (%U.as_type)) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %a.ref: @F.%U.binding.as_type (%U.binding.as_type) = name_ref a, %a +// CHECK:STDOUT: %a.ref: @F.%U.as_type.loc9_16.1 (%U.as_type) = name_ref a, %a // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11_4.1: %C = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc11_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: return @@ -310,8 +310,8 @@ interface A(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%U) { // CHECK:STDOUT: %U.loc9_7.1 => constants.%U -// CHECK:STDOUT: %U.binding.as_type => constants.%U.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %U.as_type.loc9_16.1 => constants.%U.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%U) { @@ -358,7 +358,7 @@ interface A(T:! type) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %A.type: type = facet_type <@A> [concrete] // CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -373,10 +373,10 @@ interface A(T:! type) { // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.Self.binding.as_type.impls.A.type.require.decl = require_decl @A.WithSelf.Self.binding.as_type.impls.A.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %A.ref +// CHECK:STDOUT: %A.WithSelf.Self.as_type.impls.A.type.require.decl = require_decl @A.WithSelf.Self.as_type.impls.A.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc11_18.1 impls %A.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @A.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc11_18.1: type = facet_access_type @A.%Self [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -389,16 +389,16 @@ interface A(T:! type) { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @A.WithSelf.Self.binding.as_type.impls.A.type.require(@A.%Self: %A.type) { +// CHECK:STDOUT: generic require @A.WithSelf.Self.as_type.impls.A.type.require(@A.%Self: %A.type) { // CHECK:STDOUT: %Self: %A.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc11_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A.WithSelf(constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.Self.binding.as_type.impls.A.type.require(constants.%Self) { +// CHECK:STDOUT: specific @A.WithSelf.Self.as_type.impls.A.type.require(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc11_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_extend_require_enclosing_generic.carbon @@ -412,7 +412,7 @@ interface A(T:! type) { // CHECK:STDOUT: %A.generic: %A.type.464 = struct_value () [concrete] // CHECK:STDOUT: %A.type.ade: type = facet_type <@A, @A(%T)> [symbolic] // CHECK:STDOUT: %Self: %A.type.ade = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] // CHECK:STDOUT: %empty_struct: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %A.type.69e: type = facet_type <@A, @A(%empty_struct_type)> [concrete] @@ -445,10 +445,10 @@ interface A(T:! type) { // CHECK:STDOUT: %A.WithSelf.decl = interface_with_self_decl @A [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %A.WithSelf.Self.binding.as_type.impls.A.type.require.decl = require_decl @A.WithSelf.Self.binding.as_type.impls.A.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %A.type.loc11_28 +// CHECK:STDOUT: %A.WithSelf.Self.as_type.impls.A.type.require.decl = require_decl @A.WithSelf.Self.as_type.impls.A.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc11_18.1 impls %A.type.loc11_28 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @A.%Self.loc3_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc11_18.1: type = facet_access_type @A.%Self.loc3_23.1 [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %A.ref: %A.type.464 = name_ref A, file.%A.decl [concrete = constants.%A.generic] // CHECK:STDOUT: %.loc11_27: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] // CHECK:STDOUT: %.loc11_28: type = converted %.loc11_27, constants.%empty_struct_type [concrete = constants.%empty_struct_type] @@ -465,11 +465,11 @@ interface A(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @A.WithSelf.Self.binding.as_type.impls.A.type.require(@A.%T.loc3_14.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.ade)) { +// CHECK:STDOUT: generic require @A.WithSelf.Self.as_type.impls.A.type.require(@A.%T.loc3_14.2: type, @A.%Self.loc3_23.1: @A.%A.type (%A.type.ade)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %A.type.loc11_18: type = facet_type <@A, @A(%T)> [symbolic = %A.type.loc11_18 (constants.%A.type.ade)] -// CHECK:STDOUT: %Self: @A.WithSelf.Self.binding.as_type.impls.A.type.require.%A.type.loc11_18 (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self: @A.WithSelf.Self.as_type.impls.A.type.require.%A.type.loc11_18 (%A.type.ade) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] +// CHECK:STDOUT: %Self.as_type.loc11_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @A(constants.%T) { @@ -482,10 +482,10 @@ interface A(T:! type) { // CHECK:STDOUT: %T.loc3_14.1 => constants.%empty_struct_type // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @A.WithSelf.Self.binding.as_type.impls.A.type.require(constants.%T, constants.%Self) { +// CHECK:STDOUT: specific @A.WithSelf.Self.as_type.impls.A.type.require(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %A.type.loc11_18 => constants.%A.type.ade // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc11_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/local.carbon b/toolchain/check/testdata/interface/local.carbon index 414b97a3180f..988b85129fb0 100644 --- a/toolchain/check/testdata/interface/local.carbon +++ b/toolchain/check/testdata/interface/local.carbon @@ -30,8 +30,8 @@ fn F() { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.2ec: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.dc8: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %I.WithSelf.G.type.488: type = fn_type @I.WithSelf.G, @I.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %I.WithSelf.G.6c4: %I.WithSelf.G.type.488 = struct_value () [symbolic] // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] @@ -61,16 +61,16 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %I.WithSelf.G.decl: @I.WithSelf.%I.WithSelf.G.type (%I.WithSelf.G.type.488) = fn_decl @I.WithSelf.G [symbolic = @I.WithSelf.%I.WithSelf.G (constants.%I.WithSelf.G.6c4)] { -// CHECK:STDOUT: %self.param_patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @I.WithSelf.G.%pattern_type (%pattern_type.2ec) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @I.WithSelf.G.%pattern_type (%pattern_type.dc8) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @I.WithSelf.G.%pattern_type (%pattern_type.dc8) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %self.param: @I.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @I.WithSelf.G.%Self.as_type.loc17_16.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc17_16.1: type = splice_block %.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref: %I.type = name_ref Self, @I.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc17_16.2: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc17_16.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc17_16.2: type = converted %Self.ref, %Self.as_type.loc17_16.2 [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @I.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @I.WithSelf.G.%Self.as_type.loc17_16.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, %I.WithSelf.G.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -120,10 +120,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @I.WithSelf.G(@I.%Self: %I.type) { // CHECK:STDOUT: %Self: %I.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.2ec)] +// CHECK:STDOUT: %Self.as_type.loc17_16.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc17_16.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc17_16.1 [symbolic = %pattern_type (constants.%pattern_type.dc8)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @I.WithSelf.G.%Self.binding.as_type (%Self.binding.as_type)); +// CHECK:STDOUT: fn(%self.param: @I.WithSelf.G.%Self.as_type.loc17_16.1 (%Self.as_type)); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @empty_tuple.type.as.I.impl.G(%self.param: %empty_tuple.type) { @@ -140,8 +140,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.G(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.2ec +// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.dc8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf(constants.%I.facet) { @@ -153,7 +153,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @I.WithSelf.G(constants.%I.facet) { // CHECK:STDOUT: %Self => constants.%I.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%empty_tuple.type +// CHECK:STDOUT: %Self.as_type.loc17_16.1 => constants.%empty_tuple.type // CHECK:STDOUT: %pattern_type => constants.%pattern_type.cb1 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/member_lookup.carbon b/toolchain/check/testdata/interface/member_lookup.carbon index 062a45a8ab1d..ddc840b7e867 100644 --- a/toolchain/check/testdata/interface/member_lookup.carbon +++ b/toolchain/check/testdata/interface/member_lookup.carbon @@ -74,7 +74,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessGeneric: %AccessGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.ef1: = require_complete_type %ptr.e8f [symbolic] // CHECK:STDOUT: %require_complete.46e: = require_complete_type %Interface.type.442 [symbolic] -// CHECK:STDOUT: %I.binding.as_type.24f: type = symbolic_binding_type I, 1, %I.682 [symbolic] +// CHECK:STDOUT: %I.as_type.b30: type = facet_access_type %I.682 [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.9f1: = lookup_impl_witness %I.682, @Interface, @Interface(%T.67d) [symbolic] // CHECK:STDOUT: %impl.elem0.117: %ptr.e8f = impl_witness_access %Interface.lookup_impl_witness.9f1, element0 [symbolic] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] @@ -104,7 +104,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %Self.b54: %Interface.type.389 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Interface.assoc_type.77f: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] // CHECK:STDOUT: %assoc0.dcc: %Interface.assoc_type.77f = assoc_entity element0, @Interface.WithSelf.%X [concrete] -// CHECK:STDOUT: %I.binding.as_type.78a: type = symbolic_binding_type I, 0, %I.50d [symbolic] +// CHECK:STDOUT: %I.as_type.370: type = facet_access_type %I.50d [symbolic] // CHECK:STDOUT: %Interface.lookup_impl_witness.4be: = lookup_impl_witness %I.50d, @Interface, @Interface(%i32) [symbolic] // CHECK:STDOUT: %impl.elem0.322: %ptr.235 = impl_witness_access %Interface.lookup_impl_witness.4be, element0 [symbolic] // CHECK:STDOUT: %Copy.impl_witness.843: = impl_witness imports.%Copy.impl_witness_table.c3a, @ptr.as.Copy.impl(%i32) [concrete] @@ -231,7 +231,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %ptr.loc8_50.1 [symbolic = %require_complete.loc8 (constants.%require_complete.ef1)] // CHECK:STDOUT: %require_complete.loc9: = require_complete_type %Interface.type.loc8_43.1 [symbolic = %require_complete.loc9 (constants.%require_complete.46e)] -// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 1, %I.loc8_29.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] +// CHECK:STDOUT: %I.as_type.loc9_11.2: type = facet_access_type %I.loc8_29.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.b30)] // CHECK:STDOUT: %Interface.assoc_type: type = assoc_entity_type @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.assoc_type (constants.%Interface.assoc_type.5a2)] // CHECK:STDOUT: %assoc0: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.5a2) = assoc_entity element0, @Interface.WithSelf.%X [symbolic = %assoc0 (constants.%assoc0.b59)] // CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc8_29.1, @Interface, @Interface(%T.loc8_19.1) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.9f1)] @@ -249,8 +249,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: fn() -> out %return.param: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: @AccessGeneric.%Interface.type.loc8_43.1 (%Interface.type.442) = name_ref I, %I.loc8_29.2 [symbolic = %I.loc8_29.1 (constants.%I.682)] -// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] -// CHECK:STDOUT: %.loc9_11.1: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] +// CHECK:STDOUT: %I.as_type.loc9_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.b30)] +// CHECK:STDOUT: %.loc9_11.1: type = converted %I.ref, %I.as_type.loc9_11.1 [symbolic = %I.as_type.loc9_11.2 (constants.%I.as_type.b30)] // CHECK:STDOUT: %.loc9_11.2: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.5a2) = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%T.67d, constants.%I.682) [symbolic = %assoc0 (constants.%assoc0.b59)] // CHECK:STDOUT: %X.ref: @AccessGeneric.%Interface.assoc_type (%Interface.assoc_type.5a2) = name_ref X, %.loc9_11.2 [symbolic = %assoc0 (constants.%assoc0.b59)] // CHECK:STDOUT: %impl.elem0.loc9_11.1: @AccessGeneric.%ptr.loc8_50.1 (%ptr.e8f) = impl_witness_access constants.%Interface.lookup_impl_witness.9f1, element0 [symbolic = %impl.elem0.loc9_11.3 (constants.%impl.elem0.117)] @@ -267,7 +267,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc12_20.1: %Interface.type.389 = symbolic_binding I, 0 [symbolic = %I.loc12_20.1 (constants.%I.50d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 0, %I.loc12_20.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] +// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc12_20.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.370)] // CHECK:STDOUT: %Interface.lookup_impl_witness: = lookup_impl_witness %I.loc12_20.1, @Interface, @Interface(constants.%i32) [symbolic = %Interface.lookup_impl_witness (constants.%Interface.lookup_impl_witness.4be)] // CHECK:STDOUT: %impl.elem0.loc13_11.3: %ptr.235 = impl_witness_access %Interface.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.322)] // CHECK:STDOUT: %ptr.as.Copy.impl.Op.bound: = bound_method %impl.elem0.loc13_11.3, constants.%ptr.as.Copy.impl.Op.011 [symbolic = %ptr.as.Copy.impl.Op.bound (constants.%ptr.as.Copy.impl.Op.bound)] @@ -276,8 +276,8 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: fn() -> out %return.param: %ptr.235 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: %Interface.type.389 = name_ref I, %I.loc12_20.2 [symbolic = %I.loc12_20.1 (constants.%I.50d)] -// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] -// CHECK:STDOUT: %.loc13_11.1: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] +// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.370)] +// CHECK:STDOUT: %.loc13_11.1: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.370)] // CHECK:STDOUT: %.loc13_11.2: %Interface.assoc_type.77f = specific_constant @X.%assoc0, @Interface.WithSelf(constants.%i32, constants.%I.50d) [concrete = constants.%assoc0.dcc] // CHECK:STDOUT: %X.ref: %Interface.assoc_type.77f = name_ref X, %.loc13_11.2 [concrete = constants.%assoc0.dcc] // CHECK:STDOUT: %impl.elem0.loc13_11.1: %ptr.235 = impl_witness_access constants.%Interface.lookup_impl_witness.4be, element0 [symbolic = %impl.elem0.loc13_11.3 (constants.%impl.elem0.322)] @@ -374,7 +374,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %AccessMissingGeneric: %AccessMissingGeneric.type = struct_value () [concrete] // CHECK:STDOUT: %require_complete.944: = require_complete_type %T [symbolic] // CHECK:STDOUT: %require_complete.46e: = require_complete_type %Interface.type.442 [symbolic] -// CHECK:STDOUT: %I.binding.as_type.24f: type = symbolic_binding_type I, 1, %I.682 [symbolic] +// CHECK:STDOUT: %I.as_type.b30: type = facet_access_type %I.682 [symbolic] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] @@ -390,7 +390,7 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] // CHECK:STDOUT: %Interface.assoc_type.77f: type = assoc_entity_type @Interface, @Interface(%i32) [concrete] // CHECK:STDOUT: %assoc0.dcc: %Interface.assoc_type.77f = assoc_entity element0, @Interface.WithSelf.%X [concrete] -// CHECK:STDOUT: %I.binding.as_type.78a: type = symbolic_binding_type I, 0, %I.50d [symbolic] +// CHECK:STDOUT: %I.as_type.370: type = facet_access_type %I.50d [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -500,13 +500,13 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %require_complete.loc8: = require_complete_type %T.loc8_26.1 [symbolic = %require_complete.loc8 (constants.%require_complete.944)] // CHECK:STDOUT: %require_complete.loc13: = require_complete_type %Interface.type.loc8_50.1 [symbolic = %require_complete.loc13 (constants.%require_complete.46e)] -// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 1, %I.loc8_36.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] +// CHECK:STDOUT: %I.as_type.loc13_11.2: type = facet_access_type %I.loc8_36.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.b30)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: @AccessMissingGeneric.%T.loc8_26.1 (%T) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: @AccessMissingGeneric.%Interface.type.loc8_50.1 (%Interface.type.442) = name_ref I, %I.loc8_36.2 [symbolic = %I.loc8_36.1 (constants.%I.682)] -// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] -// CHECK:STDOUT: %.loc13: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.24f)] +// CHECK:STDOUT: %I.as_type.loc13_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.b30)] +// CHECK:STDOUT: %.loc13: type = converted %I.ref, %I.as_type.loc13_11.1 [symbolic = %I.as_type.loc13_11.2 (constants.%I.as_type.b30)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return to %return.param // CHECK:STDOUT: } @@ -516,13 +516,13 @@ fn AccessMissingConcrete(I:! Interface(i32)) -> i32 { // CHECK:STDOUT: %I.loc16_27.1: %Interface.type.389 = symbolic_binding I, 0 [symbolic = %I.loc16_27.1 (constants.%I.50d)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %I.binding.as_type: type = symbolic_binding_type I, 0, %I.loc16_27.1 [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] +// CHECK:STDOUT: %I.as_type.loc21_11.2: type = facet_access_type %I.loc16_27.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.370)] // CHECK:STDOUT: // CHECK:STDOUT: fn() -> out %return.param: %i32 { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %I.ref: %Interface.type.389 = name_ref I, %I.loc16_27.2 [symbolic = %I.loc16_27.1 (constants.%I.50d)] -// CHECK:STDOUT: %I.as_type: type = facet_access_type %I.ref [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] -// CHECK:STDOUT: %.loc21: type = converted %I.ref, %I.as_type [symbolic = %I.binding.as_type (constants.%I.binding.as_type.78a)] +// CHECK:STDOUT: %I.as_type.loc21_11.1: type = facet_access_type %I.ref [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.370)] +// CHECK:STDOUT: %.loc21: type = converted %I.ref, %I.as_type.loc21_11.1 [symbolic = %I.as_type.loc21_11.2 (constants.%I.as_type.370)] // CHECK:STDOUT: %nonesuch.ref: = name_ref nonesuch, [concrete = ] // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/interface/require.carbon b/toolchain/check/testdata/interface/require.carbon index 55ce07612d5e..6855711caf2b 100644 --- a/toolchain/check/testdata/interface/require.carbon +++ b/toolchain/check/testdata/interface/require.carbon @@ -378,7 +378,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -391,13 +391,13 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Y.ref +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) [concrete = constants.%Y.type] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -408,23 +408,23 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_18.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T) { @@ -438,13 +438,13 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.generic: %Y.type.82b = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] -// CHECK:STDOUT: %Y.type.432: type = facet_type <@Y, @Y(%Self.binding.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.88f: = require_complete_type %Y.type.432 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] +// CHECK:STDOUT: %Y.type.30c: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.f8f: = require_complete_type %Y.type.30c [symbolic] // CHECK:STDOUT: %T.ea3: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.ea3 [symbolic] -// CHECK:STDOUT: %Y.type.112: type = facet_type <@Y, @Y(%T.binding.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.dc8: = require_complete_type %Y.type.112 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ea3 [symbolic] +// CHECK:STDOUT: %Y.type.a92: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.431: = require_complete_type %Y.type.a92 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -456,17 +456,17 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type.loc9_18 impls %Y.type.loc9_30.1 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.type.loc9_30.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc9_18: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: %Y.type.82b = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.binding.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.432)] +// CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.30c)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) [symbolic = %Y.type (constants.%Y.type.432)] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) [symbolic = %Y.type (constants.%Y.type.30c)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -477,37 +477,37 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type.loc9_18 impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.type.loc9_30.1 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_18.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.binding.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.432)] +// CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.30c)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.432 -// CHECK:STDOUT: %require_complete => constants.%require_complete.88f +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %Y.type => constants.%Y.type.30c +// CHECK:STDOUT: %require_complete => constants.%require_complete.f8f // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.432 +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.30c // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T.ea3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T.ea3 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.112 -// CHECK:STDOUT: %require_complete => constants.%require_complete.dc8 +// CHECK:STDOUT: %Self.as_type => constants.%T.as_type +// CHECK:STDOUT: %Y.type => constants.%Y.type.a92 +// CHECK:STDOUT: %require_complete => constants.%require_complete.431 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_implicit_self_impls.carbon @@ -516,7 +516,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -528,10 +528,10 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Y.ref +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_11.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -542,23 +542,23 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_11.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_explicit_self_impls.carbon @@ -567,7 +567,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -579,12 +579,12 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { // CHECK:STDOUT: require %.loc9 impls %Y.ref // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_11.1 [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -595,23 +595,23 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%.loc9 impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%.loc9 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- explicit_self_specific_impls.carbon @@ -622,8 +622,8 @@ interface Z(T:! type) { // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] -// CHECK:STDOUT: %C.42e: type = class_type @C, @C(%Self.binding.as_type) [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] +// CHECK:STDOUT: %C.fc4: type = class_type @C, @C(%Self.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -640,9 +640,9 @@ interface Z(T:! type) { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.42e)] +// CHECK:STDOUT: %Self.as_type.loc9_17.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_17.1 [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.fc4)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -662,16 +662,16 @@ interface Z(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.C.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.42e)] +// CHECK:STDOUT: %Self.as_type.loc9_17.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.fc4)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.42e +// CHECK:STDOUT: %Self.as_type.loc9_17.2 => constants.%Self.as_type +// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.fc4 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_impls_where.carbon @@ -682,10 +682,10 @@ interface Z(T:! type) { // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -701,15 +701,15 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %.loc7_19 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc7_11.1 impls %.loc7_19 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %Y.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc7_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -727,21 +727,21 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%.loc7_19 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y_where.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%Self.as_type.loc7_11.1 impls @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%.loc7_19 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc7_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_impls_self_specific.carbon @@ -753,8 +753,8 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.generic: %Z.type.352 = struct_value () [concrete] // CHECK:STDOUT: %Z.type.0ed: type = facet_type <@Z, @Z(%T)> [symbolic] // CHECK:STDOUT: %Self: %Z.type.0ed = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] -// CHECK:STDOUT: %Z.type.6aa: type = facet_type <@Z, @Z(%Self.binding.as_type)> [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %Z.type.a7a: type = facet_type <@Z, @Z(%Self.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -788,9 +788,9 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.ref: %Z.type.352 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %.loc5_21: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = specific_constant @Z.%Self.loc4_23.1, @Z(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = name_ref Self, %.loc5_21 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Z.type.loc5_25.1: type = facet_type <@Z, @Z(constants.%Self.binding.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.6aa)] +// CHECK:STDOUT: %Self.as_type.loc5_25.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_25: type = converted %Self.ref, %Self.as_type.loc5_25.1 [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Z.type.loc5_25.1: type = facet_type <@Z, @Z(constants.%Self.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.a7a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -812,8 +812,8 @@ interface Z(T:! type) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Z.type.loc5_21: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc5_21 (constants.%Z.type.0ed)] // CHECK:STDOUT: %Self: @Z.WithSelf.T.impls.Z.type.require.%Z.type.loc5_21 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Z.type.loc5_25.2: type = facet_type <@Z, @Z(%Self.binding.as_type)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.6aa)] +// CHECK:STDOUT: %Self.as_type.loc5_25.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_25.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Z.type.loc5_25.2: type = facet_type <@Z, @Z(%Self.as_type.loc5_25.2)> [symbolic = %Z.type.loc5_25.2 (constants.%Z.type.a7a)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T) { @@ -822,16 +822,16 @@ interface Z(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z(constants.%Self.binding.as_type) { -// CHECK:STDOUT: %T.loc4_14.1 => constants.%Self.binding.as_type +// CHECK:STDOUT: specific @Z(constants.%Self.as_type) { +// CHECK:STDOUT: %T.loc4_14.1 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.T.impls.Z.type.require(constants.%T, constants.%Self) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Z.type.loc5_21 => constants.%Z.type.0ed // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %Z.type.loc5_25.2 => constants.%Z.type.6aa +// CHECK:STDOUT: %Self.as_type.loc5_25.2 => constants.%Self.as_type +// CHECK:STDOUT: %Z.type.loc5_25.2 => constants.%Z.type.a7a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_self_in_requirement.carbon @@ -842,12 +842,12 @@ interface Z(T:! type) { // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.c59: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.c59 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.c59 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where %impl.elem0 = %Self.binding.as_type> [symbolic] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where %impl.elem0 = %Self.as_type> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -859,20 +859,20 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type.loc10_11 impls %.loc10_19 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc10_11.1 impls %.loc10_19 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc10_11: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %Y.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_19: type = where_expr %.Self [symbolic = %Y_where.type (constants.%Y_where.type)] { // CHECK:STDOUT: requirement_base_facet_type constants.%Y.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_31 @@ -886,22 +886,22 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11 impls @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%.loc10_19 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y_where.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11.1 impls @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%.loc10_19 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.c59)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.binding.as_type> [symbolic = %Y_where.type (constants.%Y_where.type)] +// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.as_type.loc10_11.2> [symbolic = %Y_where.type (constants.%Y_where.type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.c59) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.c59) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.c59) { // CHECK:STDOUT: %Self => constants.%Self.c59 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -914,7 +914,7 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.generic: %Z.type.352 = struct_value () [concrete] // CHECK:STDOUT: %Z.type.0ed: type = facet_type <@Z, @Z(%T)> [symbolic] // CHECK:STDOUT: %Self.822: %Z.type.0ed = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.b37: type = symbolic_binding_type Self, 1, %Self.822 [symbolic] +// CHECK:STDOUT: %Self.as_type.7f3: type = facet_access_type %Self.822 [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -941,10 +941,10 @@ interface Z(T:! type) { // CHECK:STDOUT: %Z.WithSelf.decl = interface_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Z.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Z.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Z.type.loc11_20 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Z.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Z.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc11_11.1 impls %Z.type.loc11_20 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self.loc8_23.1 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b37)] +// CHECK:STDOUT: %Self.as_type.loc11_11.1: type = facet_access_type @Z.%Self.loc8_23.1 [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.7f3)] // CHECK:STDOUT: %Z.ref: %Z.type.352 = name_ref Z, file.%Z.decl [concrete = constants.%Z.generic] // CHECK:STDOUT: %T.ref: type = name_ref T, @Z.%T.loc8_14.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Z.type.loc11_20: type = facet_type <@Z, @Z(constants.%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.0ed)] @@ -959,17 +959,17 @@ interface Z(T:! type) { // CHECK:STDOUT: witness = () // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Z.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Z.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Z.type.require.%Z.type.loc11_20 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Z.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Z.type.require.%Self.as_type.loc11_11.1 impls @Z.WithSelf.Self.as_type.impls.Z.type.require.%Z.type.loc11_20 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Z.type.require(@Z.%T.loc8_14.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.0ed)) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Z.type.require(@Z.%T.loc8_14.2: type, @Z.%Self.loc8_23.1: @Z.%Z.type (%Z.type.0ed)) { // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Z.type.loc11_11: type = facet_type <@Z, @Z(%T)> [symbolic = %Z.type.loc11_11 (constants.%Z.type.0ed)] -// CHECK:STDOUT: %Self: @Z.WithSelf.Self.binding.as_type.impls.Z.type.require.%Z.type.loc11_11 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.b37)] +// CHECK:STDOUT: %Self: @Z.WithSelf.Self.as_type.impls.Z.type.require.%Z.type.loc11_11 (%Z.type.0ed) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.822)] +// CHECK:STDOUT: %Self.as_type.loc11_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc11_11.2 (constants.%Self.as_type.7f3)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z(constants.%T) { @@ -978,10 +978,10 @@ interface Z(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T, constants.%Self.822) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Z.type.require(constants.%T, constants.%Self.822) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Z.type.require(constants.%T, constants.%Self.822) { // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %Z.type.loc11_11 => constants.%Z.type.0ed // CHECK:STDOUT: %Self => constants.%Self.822 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.b37 +// CHECK:STDOUT: %Self.as_type.loc11_11.2 => constants.%Self.as_type.7f3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interface/self.carbon b/toolchain/check/testdata/interface/self.carbon index 6d1f401626d3..6865fb098011 100644 --- a/toolchain/check/testdata/interface/self.carbon +++ b/toolchain/check/testdata/interface/self.carbon @@ -21,9 +21,9 @@ interface UseSelf { // CHECK:STDOUT: constants { // CHECK:STDOUT: %UseSelf.type: type = facet_type <@UseSelf> [concrete] // CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic] -// CHECK:STDOUT: %.85e: Core.Form = init_form %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type [symbolic] +// CHECK:STDOUT: %.4e5: Core.Form = init_form %Self.as_type [symbolic] // CHECK:STDOUT: %UseSelf.WithSelf.F.type: type = fn_type @UseSelf.WithSelf.F, @UseSelf.WithSelf(%Self) [symbolic] // CHECK:STDOUT: %UseSelf.WithSelf.F: %UseSelf.WithSelf.F.type = struct_value () [symbolic] // CHECK:STDOUT: %UseSelf.assoc_type: type = assoc_entity_type @UseSelf [concrete] @@ -49,18 +49,18 @@ interface UseSelf { // CHECK:STDOUT: %return.patt: @UseSelf.WithSelf.F.%pattern_type (%pattern_type) = return_slot_pattern %return.param_patt, %.loc16_25.2 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref.loc16_25: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_25.2: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_25.3: Core.Form = init_form %.loc16_25.2 [symbolic = %.loc16_25.1 (constants.%.85e)] -// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %Self.as_type.loc16_25: type = facet_access_type %Self.ref.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_25.2: type = converted %Self.ref.loc16_25, %Self.as_type.loc16_25 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_25.3: Core.Form = init_form %.loc16_25.2 [symbolic = %.loc16_25.1 (constants.%.4e5)] +// CHECK:STDOUT: %self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc16_14.1: type = splice_block %.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %Self.ref.loc16_14: %UseSelf.type = name_ref Self, @UseSelf.%Self [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type.loc16_14: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc16_14.2: type = facet_access_type %Self.ref.loc16_14 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc16_14.2: type = converted %Self.ref.loc16_14, %Self.as_type.loc16_14.2 [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param -// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = out_param call_param1 -// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type) = return_slot %return.param +// CHECK:STDOUT: %self: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %return.param: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = out_param call_param1 +// CHECK:STDOUT: %return: ref @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %assoc0: %UseSelf.assoc_type = assoc_entity element0, %UseSelf.WithSelf.F.decl [concrete = constants.%assoc0] // CHECK:STDOUT: @@ -74,19 +74,19 @@ interface UseSelf { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @UseSelf.WithSelf.F(@UseSelf.%Self: %UseSelf.type) { // CHECK:STDOUT: %Self: %UseSelf.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type (constants.%pattern_type)] -// CHECK:STDOUT: %.loc16_25.1: Core.Form = init_form %Self.binding.as_type [symbolic = %.loc16_25.1 (constants.%.85e)] +// CHECK:STDOUT: %Self.as_type.loc16_14.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc16_14.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Self.as_type.loc16_14.1 [symbolic = %pattern_type (constants.%pattern_type)] +// CHECK:STDOUT: %.loc16_25.1: Core.Form = init_form %Self.as_type.loc16_14.1 [symbolic = %.loc16_25.1 (constants.%.4e5)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @UseSelf.WithSelf.F.%Self.binding.as_type (%Self.binding.as_type); +// CHECK:STDOUT: fn(%self.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type)) -> out %return.param: @UseSelf.WithSelf.F.%Self.as_type.loc16_14.1 (%Self.as_type); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf(constants.%Self) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @UseSelf.WithSelf.F(constants.%Self) { // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc16_14.1 => constants.%Self.as_type // CHECK:STDOUT: %pattern_type => constants.%pattern_type -// CHECK:STDOUT: %.loc16_25.1 => constants.%.85e +// CHECK:STDOUT: %.loc16_25.1 => constants.%.4e5 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/class/import/base.carbon b/toolchain/check/testdata/interop/cpp/class/import/base.carbon index 8506a845011c..ef4bf91da9d7 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/base.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/base.carbon @@ -472,7 +472,7 @@ class V { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Derived: type = class_type @Derived [concrete] // CHECK:STDOUT: %ptr.ddb: type = ptr_type %Derived [concrete] -// CHECK:STDOUT: %pattern_type.5c86: type = pattern_type %ptr.ddb [concrete] +// CHECK:STDOUT: %pattern_type.5c8: type = pattern_type %ptr.ddb [concrete] // CHECK:STDOUT: %Base: type = class_type @Base [concrete] // CHECK:STDOUT: %ptr.fb2: type = ptr_type %Base [concrete] // CHECK:STDOUT: %.c2a: Core.Form = init_form %ptr.fb2 [concrete] @@ -511,8 +511,8 @@ class V { // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: %ConvertPtr.decl: %ConvertPtr.type = fn_decl @ConvertPtr [concrete = constants.%ConvertPtr] { -// CHECK:STDOUT: %d.param_patt: %pattern_type.5c86 = value_param_pattern [concrete] -// CHECK:STDOUT: %d.patt: %pattern_type.5c86 = at_binding_pattern d, %d.param_patt [concrete] +// CHECK:STDOUT: %d.param_patt: %pattern_type.5c8 = value_param_pattern [concrete] +// CHECK:STDOUT: %d.patt: %pattern_type.5c8 = at_binding_pattern d, %d.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.72a = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: %pattern_type.72a = return_slot_pattern %return.param_patt, %ptr.loc7_43 [concrete] // CHECK:STDOUT: } { diff --git a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon index ab3d898c27cf..fed1e8dde718 100644 --- a/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon +++ b/toolchain/check/testdata/interop/cpp/class/import/constructor.carbon @@ -374,14 +374,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.a0a: = custom_witness (%C.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.fdc: %Default.type = facet_value %C, (%custom_witness.a0a) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.2aa: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.fdc) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.898: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.2aa) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.098: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.fdc) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.f32: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.098) [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -392,8 +392,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {} -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -403,14 +403,14 @@ fn F() { // CHECK:STDOUT: %c.var_patt: %pattern_type.217 = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.2aa) [concrete = constants.%DefaultOrUnformed.facet.898] -// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.898] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.098) [concrete = constants.%DefaultOrUnformed.facet.f32] +// CHECK:STDOUT: %.loc8_22.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet.f32] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc8_22.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc8_22.2: type = converted %.loc8_22.1, %as_type [concrete = constants.%C] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_3: ref %C = splice_block %c.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %C to %.loc8_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %c.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %C to %.loc8_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %c.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc8_20: type = splice_block %C.ref [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%C.decl [concrete = constants.%C] diff --git a/toolchain/check/testdata/interop/cpp/function/import/class.carbon b/toolchain/check/testdata/interop/cpp/function/import/class.carbon index c62c5f05fec9..9190c4d09437 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/class.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/class.carbon @@ -655,14 +655,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %C.Op.type: type = fn_type @C.Op [concrete] // CHECK:STDOUT: %C.Op: %C.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.cb7: = custom_witness (%C.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.0fd: %Default.type = facet_value %C, (%custom_witness.cb7) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.5a3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.0fd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.5a3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.4da: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.0fd) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %C, (%DefaultOrUnformed.impl_witness.4da) [concrete] // CHECK:STDOUT: %C.cpp_destructor.type: type = fn_type @C.cpp_destructor [concrete] // CHECK:STDOUT: %C.cpp_destructor: %C.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -684,8 +684,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { @@ -701,14 +701,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.69f = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %C = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.5a3) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%C, (constants.%DefaultOrUnformed.impl_witness.4da) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%C, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%C] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%C] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_3: ref %C = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %C to %.loc10_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %C to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc10_22: type = splice_block %C.ref.loc10 [concrete = constants.%C] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc10: = name_ref N, imports.%N [concrete = imports.%N] @@ -782,14 +782,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.8f6: = custom_witness (%O.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.d7b: %Default.type = facet_value %O, (%custom_witness.8f6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e05: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.e05) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.ebd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.ebd) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -807,8 +807,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%c.param: %C) { @@ -824,14 +824,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.cff = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.e05) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.ebd) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] // CHECK:STDOUT: // CHECK:STDOUT: %.loc9_3: ref %O = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc9_20: type = splice_block %O.ref.loc9 [concrete = constants.%O] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc9: type = name_ref O, imports.%O.decl [concrete = constants.%O] diff --git a/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon index 01f4618b9cbb..1d76fbd376a8 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/decayed_param.carbon @@ -88,16 +88,16 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %UnformedInit.type: type = facet_type <@UnformedInit> [concrete] // CHECK:STDOUT: %T.c4d: %UnformedInit.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op.2, @T.binding.as_type.as.DefaultOrUnformed.impl.90a(%T.c4d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.2df: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.8bc(%T.c4d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.74b: %T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T.67d [symbolic] // CHECK:STDOUT: %UnformedInit.impl_witness.340: = impl_witness imports.%UnformedInit.impl_witness_table.c5f, @Int.as.UnformedInit.impl(%int_32) [concrete] // CHECK:STDOUT: %UnformedInit.facet.b6d: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.340) [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness.90e: = impl_witness imports.%UnformedInit.impl_witness_table.60d, @array_type.as.UnformedInit.impl(%UnformedInit.facet.b6d, %int_42) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.40a: %UnformedInit.type = facet_value %array_type.643, (%UnformedInit.impl_witness.90e) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.eb0: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.626, @T.binding.as_type.as.DefaultOrUnformed.impl.90a(%UnformedInit.facet.40a) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.643, (%DefaultOrUnformed.impl_witness.eb0) [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness.c07: = impl_witness imports.%UnformedInit.impl_witness_table.0c7, @array_type.as.UnformedInit.impl(%UnformedInit.facet.b6d, %int_42) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.588: %UnformedInit.type = facet_value %array_type.643, (%UnformedInit.impl_witness.c07) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.609: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.020, @T.as_type.as.DefaultOrUnformed.impl.8bc(%UnformedInit.facet.588) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.643, (%DefaultOrUnformed.impl_witness.609) [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.type: type = cpp_overload_set_type @TakesArray.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.value: %TakesArray.cpp_overload_set.type = cpp_overload_set_value @TakesArray.cpp_overload_set [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] @@ -139,20 +139,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.121: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.75d)> [concrete] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.432: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.6bd)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.2cb: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.6bd) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.432 = facet_value %ptr.235, (%OptionalAs.impl_witness.2cb) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.2c0: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.cc7: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.37e: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.cc7 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.8cd: %ImplicitAs.type.121 = facet_value %ptr.235, (%ImplicitAs.impl_witness.2c0) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.944: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.75d, %ImplicitAs.facet.8cd) [concrete] -// CHECK:STDOUT: %.c75: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.944, %ImplicitAs.facet.8cd [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.37e, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.efe: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.6bd) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.432 = facet_value %ptr.235, (%OptionalAs.impl_witness.efe) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.365: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.92b: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.254: %U.as_type.as.ImplicitAs.impl.Convert.type.92b = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.887: %ImplicitAs.type.121 = facet_value %ptr.235, (%ImplicitAs.impl_witness.365) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.262: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.75d, %ImplicitAs.facet.887) [concrete] +// CHECK:STDOUT: %.a54: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.262, %ImplicitAs.facet.887 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.254, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.6bd, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Cpp.nullptr_t: type = class_type @NullptrT [concrete] // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.2ba: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.67d) [symbolic] @@ -178,9 +178,9 @@ fn F() { // CHECK:STDOUT: .nullptr = @F.%uninit // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.e09: @T.binding.as_type.as.DefaultOrUnformed.impl.90a.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.90a.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.2df)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.626 = impl_witness_table (%Core.import_ref.e09), @T.binding.as_type.as.DefaultOrUnformed.impl.90a [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.60d = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1b5: @T.as_type.as.DefaultOrUnformed.impl.8bc.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.8bc.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.74b)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.020 = impl_witness_table (%Core.import_ref.1b5), @T.as_type.as.DefaultOrUnformed.impl.8bc [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.0c7 = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] // CHECK:STDOUT: %UnformedInit.impl_witness_table.c5f = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] // CHECK:STDOUT: %TakesArray.cpp_overload_set.value: %TakesArray.cpp_overload_set.type = cpp_overload_set_value @TakesArray.cpp_overload_set [concrete = constants.%TakesArray.cpp_overload_set.value] // CHECK:STDOUT: %Core.import_ref.42d: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.4e6) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3c2)] @@ -203,10 +203,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: %Core.import_ref.c58: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.2ba) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.0ff)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.692 = impl_witness_table (%Core.import_ref.c58), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -218,14 +218,14 @@ fn F() { // CHECK:STDOUT: %n.var_patt: %pattern_type.b6e = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %array_type.643 = var %n.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.643, (constants.%DefaultOrUnformed.impl_witness.eb0) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.643, (constants.%DefaultOrUnformed.impl_witness.609) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%array_type.643, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%array_type.643] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%array_type.643] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_3: ref %array_type.643 = splice_block %n.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.643 to %.loc10_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %n.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.643 to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %n.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc10_23: type = splice_block %array_type [concrete = constants.%array_type.643] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42] @@ -245,12 +245,12 @@ fn F() { // CHECK:STDOUT: %.loc11_21.2: %i32 = converted %int_0, %.loc11_21.1 [concrete = constants.%int_0.6a9] // CHECK:STDOUT: %.loc11_22: ref %i32 = array_index %n.ref, %.loc11_21.2 // CHECK:STDOUT: %addr: %ptr.235 = addr_of %.loc11_22 -// CHECK:STDOUT: %impl.elem0.loc11_18: %.c75 = impl_witness_access constants.%ImplicitAs.impl_witness.2c0, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.37e] +// CHECK:STDOUT: %impl.elem0.loc11_18: %.a54 = impl_witness_access constants.%ImplicitAs.impl_witness.365, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.254] // CHECK:STDOUT: %bound_method.loc11_18.1: = bound_method %addr, %impl.elem0.loc11_18 -// CHECK:STDOUT: %specific_fn.loc11_18: = specific_function %impl.elem0.loc11_18, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.6bd, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn.loc11_18: = specific_function %impl.elem0.loc11_18, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.6bd, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_18.2: = bound_method %addr, %specific_fn.loc11_18 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.75d = call %bound_method.loc11_18.2(%addr) -// CHECK:STDOUT: %.loc11_18.1: init %Optional.75d = converted %addr, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.75d = call %bound_method.loc11_18.2(%addr) +// CHECK:STDOUT: %.loc11_18.1: init %Optional.75d = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc11_18.2: ref %Optional.75d = temporary_storage // CHECK:STDOUT: %.loc11_18.3: ref %Optional.75d = temporary %.loc11_18.2, %.loc11_18.1 // CHECK:STDOUT: %.loc11_18.4: %Optional.75d = acquire_value %.loc11_18.3 @@ -320,14 +320,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %UnformedInit.type: type = facet_type <@UnformedInit> [concrete] // CHECK:STDOUT: %T.c4d: %UnformedInit.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op.2, @T.binding.as_type.as.DefaultOrUnformed.impl.90a(%T.c4d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.2df: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op.2, @T.as_type.as.DefaultOrUnformed.impl.8bc(%T.c4d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.74b: %T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4 = struct_value () [symbolic] // CHECK:STDOUT: %UnformedInit.impl_witness.340: = impl_witness imports.%UnformedInit.impl_witness_table.c5f, @Int.as.UnformedInit.impl(%int_32) [concrete] // CHECK:STDOUT: %UnformedInit.facet.b6d: %UnformedInit.type = facet_value %i32, (%UnformedInit.impl_witness.340) [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness.90e: = impl_witness imports.%UnformedInit.impl_witness_table.60d, @array_type.as.UnformedInit.impl(%UnformedInit.facet.b6d, %int_42) [concrete] -// CHECK:STDOUT: %UnformedInit.facet.40a: %UnformedInit.type = facet_value %array_type.643, (%UnformedInit.impl_witness.90e) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.eb0: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.626, @T.binding.as_type.as.DefaultOrUnformed.impl.90a(%UnformedInit.facet.40a) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.643, (%DefaultOrUnformed.impl_witness.eb0) [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness.c07: = impl_witness imports.%UnformedInit.impl_witness_table.0c7, @array_type.as.UnformedInit.impl(%UnformedInit.facet.b6d, %int_42) [concrete] +// CHECK:STDOUT: %UnformedInit.facet.588: %UnformedInit.type = facet_value %array_type.643, (%UnformedInit.impl_witness.c07) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.609: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.020, @T.as_type.as.DefaultOrUnformed.impl.8bc(%UnformedInit.facet.588) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %array_type.643, (%DefaultOrUnformed.impl_witness.609) [concrete] // CHECK:STDOUT: %int_0.5c6: Core.IntLiteral = int_value 0 [concrete] // CHECK:STDOUT: %ImplicitAs.type.e8c: type = facet_type <@ImplicitAs, @ImplicitAs(%i32)> [concrete] // CHECK:STDOUT: %To: Core.IntLiteral = symbolic_binding To, 0 [symbolic] @@ -359,9 +359,9 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: %TakesFunction.cpp_overload_set.value: %TakesFunction.cpp_overload_set.type = cpp_overload_set_value @TakesFunction.cpp_overload_set [concrete = constants.%TakesFunction.cpp_overload_set.value] // CHECK:STDOUT: %Function.cpp_overload_set.value: %Function.cpp_overload_set.type = cpp_overload_set_value @Function.cpp_overload_set [concrete = constants.%Function.cpp_overload_set.value] -// CHECK:STDOUT: %Core.import_ref.e09: @T.binding.as_type.as.DefaultOrUnformed.impl.90a.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8c3) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.90a.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.2df)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.626 = impl_witness_table (%Core.import_ref.e09), @T.binding.as_type.as.DefaultOrUnformed.impl.90a [concrete] -// CHECK:STDOUT: %UnformedInit.impl_witness_table.60d = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.1b5: @T.as_type.as.DefaultOrUnformed.impl.8bc.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.fc4) = import_ref Core//prelude/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.8bc.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.74b)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.020 = impl_witness_table (%Core.import_ref.1b5), @T.as_type.as.DefaultOrUnformed.impl.8bc [concrete] +// CHECK:STDOUT: %UnformedInit.impl_witness_table.0c7 = impl_witness_table (), @array_type.as.UnformedInit.impl [concrete] // CHECK:STDOUT: %UnformedInit.impl_witness_table.c5f = impl_witness_table (), @Int.as.UnformedInit.impl [concrete] // CHECK:STDOUT: %Core.import_ref.42d: @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.4e6) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3c2)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.74f = impl_witness_table (%Core.import_ref.42d), @Core.IntLiteral.as.ImplicitAs.impl [concrete] @@ -381,14 +381,14 @@ fn F() { // CHECK:STDOUT: %n.var_patt: %pattern_type.b6e = var_pattern %n.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %n.var: ref %array_type.643 = var %n.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.643, (constants.%DefaultOrUnformed.impl_witness.eb0) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%array_type.643, (constants.%DefaultOrUnformed.impl_witness.609) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc22_24.1: %DefaultOrUnformed.type = converted constants.%array_type.643, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc22_24.1 [concrete = constants.%array_type.643] // CHECK:STDOUT: %.loc22_24.2: type = converted %.loc22_24.1, %as_type [concrete = constants.%array_type.643] // CHECK:STDOUT: // CHECK:STDOUT: %.loc22_3: ref %array_type.643 = splice_block %n.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.643 to %.loc22_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %n.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %array_type.643 to %.loc22_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %n.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc22_23: type = splice_block %array_type [concrete = constants.%array_type.643] { // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %int_42: Core.IntLiteral = int_value 42 [concrete = constants.%int_42] diff --git a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon index aae611fd9234..3dd3444d76eb 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/overloads.carbon @@ -3889,9 +3889,9 @@ fn F() { // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %pattern_type.9d9: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %ValueT: %I.type = symbolic_binding ValueT, 0 [symbolic] -// CHECK:STDOUT: %ValueT.binding.as_type: type = symbolic_binding_type ValueT, 0, %ValueT [symbolic] -// CHECK:STDOUT: %pattern_type.422: type = pattern_type %ValueT.binding.as_type [symbolic] -// CHECK:STDOUT: %value: %ValueT.binding.as_type = symbolic_binding value, 1 [symbolic] +// CHECK:STDOUT: %ValueT.as_type: type = facet_access_type %ValueT [symbolic] +// CHECK:STDOUT: %pattern_type.f4e: type = pattern_type %ValueT.as_type [symbolic] +// CHECK:STDOUT: %value: %ValueT.as_type = symbolic_binding value, 1 [symbolic] // CHECK:STDOUT: %EchoValue.type: type = fn_type @EchoValue [concrete] // CHECK:STDOUT: %EchoValue: %EchoValue.type = struct_value () [concrete] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -3927,20 +3927,20 @@ fn F() { // CHECK:STDOUT: %I.decl: type = interface_decl @I [concrete = constants.%I.type] {} {} // CHECK:STDOUT: %EchoValue.decl: %EchoValue.type = fn_decl @EchoValue [concrete = constants.%EchoValue] { // CHECK:STDOUT: %ValueT.patt: %pattern_type.9d9 = symbolic_binding_pattern ValueT, 0 [concrete] -// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.422) = symbolic_binding_pattern value, 1 [concrete] +// CHECK:STDOUT: %value.patt: @EchoValue.%pattern_type (%pattern_type.f4e) = symbolic_binding_pattern value, 1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %.loc10_23: type = splice_block %I.ref [concrete = constants.%I.type] { // CHECK:STDOUT: %.Self.2: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: } // CHECK:STDOUT: %ValueT.loc10_20.2: %I.type = symbolic_binding ValueT, 0 [symbolic = %ValueT.loc10_20.1 (constants.%ValueT)] -// CHECK:STDOUT: %.loc10_41.1: type = splice_block %.loc10_41.2 [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] { +// CHECK:STDOUT: %.loc10_41.1: type = splice_block %.loc10_41.2 [symbolic = %ValueT.as_type.loc10_41.1 (constants.%ValueT.as_type)] { // CHECK:STDOUT: %.Self.1: %type = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %ValueT.ref: %I.type = name_ref ValueT, %ValueT.loc10_20.2 [symbolic = %ValueT.loc10_20.1 (constants.%ValueT)] -// CHECK:STDOUT: %ValueT.as_type: type = facet_access_type %ValueT.ref [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] -// CHECK:STDOUT: %.loc10_41.2: type = converted %ValueT.ref, %ValueT.as_type [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] +// CHECK:STDOUT: %ValueT.as_type.loc10_41.2: type = facet_access_type %ValueT.ref [symbolic = %ValueT.as_type.loc10_41.1 (constants.%ValueT.as_type)] +// CHECK:STDOUT: %.loc10_41.2: type = converted %ValueT.ref, %ValueT.as_type.loc10_41.2 [symbolic = %ValueT.as_type.loc10_41.1 (constants.%ValueT.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %value.loc10_38.2: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type) = symbolic_binding value, 1 [symbolic = %value.loc10_38.1 (constants.%value)] +// CHECK:STDOUT: %value.loc10_38.2: @EchoValue.%ValueT.as_type.loc10_41.1 (%ValueT.as_type) = symbolic_binding value, 1 [symbolic = %value.loc10_38.1 (constants.%value)] // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} // CHECK:STDOUT: } @@ -3956,11 +3956,11 @@ fn F() { // CHECK:STDOUT: !requires: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @EchoValue(%ValueT.loc10_20.2: %I.type, %value.loc10_38.2: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type)) { +// CHECK:STDOUT: generic fn @EchoValue(%ValueT.loc10_20.2: %I.type, %value.loc10_38.2: @EchoValue.%ValueT.as_type.loc10_41.1 (%ValueT.as_type)) { // CHECK:STDOUT: %ValueT.loc10_20.1: %I.type = symbolic_binding ValueT, 0 [symbolic = %ValueT.loc10_20.1 (constants.%ValueT)] -// CHECK:STDOUT: %ValueT.binding.as_type: type = symbolic_binding_type ValueT, 0, %ValueT.loc10_20.1 [symbolic = %ValueT.binding.as_type (constants.%ValueT.binding.as_type)] -// CHECK:STDOUT: %value.loc10_38.1: @EchoValue.%ValueT.binding.as_type (%ValueT.binding.as_type) = symbolic_binding value, 1 [symbolic = %value.loc10_38.1 (constants.%value)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.binding.as_type [symbolic = %pattern_type (constants.%pattern_type.422)] +// CHECK:STDOUT: %ValueT.as_type.loc10_41.1: type = facet_access_type %ValueT.loc10_20.1 [symbolic = %ValueT.as_type.loc10_41.1 (constants.%ValueT.as_type)] +// CHECK:STDOUT: %value.loc10_38.1: @EchoValue.%ValueT.as_type.loc10_41.1 (%ValueT.as_type) = symbolic_binding value, 1 [symbolic = %value.loc10_38.1 (constants.%value)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %ValueT.as_type.loc10_41.1 [symbolic = %pattern_type (constants.%pattern_type.f4e)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: @@ -3984,8 +3984,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: specific @EchoValue(constants.%ValueT, constants.%value) { // CHECK:STDOUT: %ValueT.loc10_20.1 => constants.%ValueT -// CHECK:STDOUT: %ValueT.binding.as_type => constants.%ValueT.binding.as_type +// CHECK:STDOUT: %ValueT.as_type.loc10_41.1 => constants.%ValueT.as_type // CHECK:STDOUT: %value.loc10_38.1 => constants.%value -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.422 +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.f4e // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon index e4edeae5d255..175ed4b62f56 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/pointer.carbon @@ -945,26 +945,26 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.1a0: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.065)> [concrete] // CHECK:STDOUT: %ImplicitAs.type.031604.2: type = facet_type <@ImplicitAs, @ImplicitAs(%T.67d)> [symbolic] // CHECK:STDOUT: %U.738: %ImplicitAs.type.031604.2 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.4fd: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%T.67d, %U.738) [symbolic] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.e59: %const.as.ImplicitAs.impl.Convert.type.4fd = struct_value () [symbolic] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.a49: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%T.67d, %U.738) [symbolic] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.d5f: %const.as.ImplicitAs.impl.Convert.type.a49 = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.8cb: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.872)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.a0a: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.a0a) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3a6: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.77f: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.3a6) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.8b7: = impl_witness imports.%ImplicitAs.impl_witness_table.962, @const.as.ImplicitAs.impl(%Optional.065, %ImplicitAs.facet.77f) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.ddd: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.065, %ImplicitAs.facet.77f) [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.af2: %const.as.ImplicitAs.impl.Convert.type.ddd = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.1bd: %ImplicitAs.type.1a0 = facet_value %const.b9a, (%ImplicitAs.impl_witness.8b7) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.05e: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.1bd) [concrete] -// CHECK:STDOUT: %.b4e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.05e, %ImplicitAs.facet.1bd [concrete] -// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.af2, @const.as.ImplicitAs.impl.Convert(%Optional.065, %ImplicitAs.facet.77f) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.83b: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.83b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.de6: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a29: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.de6) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.2c2: = impl_witness imports.%ImplicitAs.impl_witness_table.c8f, @const.as.ImplicitAs.impl(%Optional.065, %ImplicitAs.facet.a29) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.type.ee8: type = fn_type @const.as.ImplicitAs.impl.Convert, @const.as.ImplicitAs.impl(%Optional.065, %ImplicitAs.facet.a29) [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.4ce: %const.as.ImplicitAs.impl.Convert.type.ee8 = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.b46: %ImplicitAs.type.1a0 = facet_value %const.b9a, (%ImplicitAs.impl_witness.2c2) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f5: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.b46) [concrete] +// CHECK:STDOUT: %.657: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f5, %ImplicitAs.facet.b46 [concrete] +// CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %const.as.ImplicitAs.impl.Convert.4ce, @const.as.ImplicitAs.impl.Convert(%Optional.065, %ImplicitAs.facet.a29) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.3: %Destroy.Op.type.bae255.3 = struct_value () [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.4: type = fn_type @Destroy.Op.loc10 [concrete] @@ -996,12 +996,12 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.214: @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert.type (%const.as.ImplicitAs.impl.Convert.type.4fd) = import_ref Core//prelude/types/optional, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert (constants.%const.as.ImplicitAs.impl.Convert.e59)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.962 = impl_witness_table (%Core.import_ref.214), @const.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.a8a: @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert.type (%const.as.ImplicitAs.impl.Convert.type.a49) = import_ref Core//prelude/types/optional, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @const.as.ImplicitAs.impl.%const.as.ImplicitAs.impl.Convert (constants.%const.as.ImplicitAs.impl.Convert.d5f)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.c8f = impl_witness_table (%Core.import_ref.a8a), @const.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1024,9 +1024,9 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %p.ref: ref %const.b9a = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.b4e = impl_witness_access constants.%ImplicitAs.impl_witness.8b7, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.af2] +// CHECK:STDOUT: %impl.elem0: %.657 = impl_witness_access constants.%ImplicitAs.impl_witness.2c2, element0 [concrete = constants.%const.as.ImplicitAs.impl.Convert.4ce] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.065, constants.%ImplicitAs.facet.77f) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.ImplicitAs.impl.Convert(constants.%Optional.065, constants.%ImplicitAs.facet.a29) [concrete = constants.%const.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn // CHECK:STDOUT: %.loc11_11.1: %const.b9a = acquire_value %p.ref // CHECK:STDOUT: %const.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc11_11.2(%.loc11_11.1) @@ -1091,20 +1091,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.1a0: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.065)> [concrete] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.8cb: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.872)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.a0a: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.a0a) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3a6: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.77f: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.3a6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0a72: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.77f) [concrete] -// CHECK:STDOUT: %.9b3: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0a72, %ImplicitAs.facet.77f [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.83b: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.83b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.de6: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.ad4: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a29: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.de6) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.673: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.a29) [concrete] +// CHECK:STDOUT: %.8ca: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.673, %ImplicitAs.facet.a29 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.ad4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.3: type = fn_type @Destroy.Op.loc11_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.3: %Destroy.Op.type.bae255.3 = struct_value () [concrete] // CHECK:STDOUT: } @@ -1134,10 +1134,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1159,13 +1159,13 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc11: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %p.ref: ref %ptr.5c7 = name_ref p, %p -// CHECK:STDOUT: %impl.elem0: %.9b3 = impl_witness_access constants.%ImplicitAs.impl_witness.3a6, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.bd4] +// CHECK:STDOUT: %impl.elem0: %.8ca = impl_witness_access constants.%ImplicitAs.impl_witness.de6, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.ad4] // CHECK:STDOUT: %bound_method.loc11_11.1: = bound_method %p.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_11.2: = bound_method %p.ref, %specific_fn // CHECK:STDOUT: %.loc11_11.1: %ptr.5c7 = acquire_value %p.ref -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc11_11.2(%.loc11_11.1) -// CHECK:STDOUT: %.loc11_11.2: init %Optional.065 = converted %p.ref, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc11_11.2(%.loc11_11.1) +// CHECK:STDOUT: %.loc11_11.2: init %Optional.065 = converted %p.ref, %U.as_type.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc11_11.3: ref %Optional.065 = temporary_storage // CHECK:STDOUT: %.loc11_11.4: ref %Optional.065 = temporary %.loc11_11.3, %.loc11_11.2 // CHECK:STDOUT: %.loc11_11.5: %Optional.065 = acquire_value %.loc11_11.4 @@ -1356,20 +1356,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.1a0: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.065)> [concrete] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.8cb: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.872)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.a0a: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.a0a) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3a6: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.77f: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.3a6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0a72: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.77f) [concrete] -// CHECK:STDOUT: %.9b3: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0a72, %ImplicitAs.facet.77f [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.83b: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.83b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.de6: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.ad4: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a29: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.de6) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.673: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.a29) [concrete] +// CHECK:STDOUT: %.8ca: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.673, %ImplicitAs.facet.a29 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.ad4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.3: type = fn_type @Destroy.Op.loc9_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.3: %Destroy.Op.type.bae255.3 = struct_value () [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] @@ -1401,10 +1401,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -1427,12 +1427,12 @@ fn F() { // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: %addr: %ptr.5c7 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.9b3 = impl_witness_access constants.%ImplicitAs.impl_witness.3a6, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.bd4] +// CHECK:STDOUT: %impl.elem0: %.8ca = impl_witness_access constants.%ImplicitAs.impl_witness.de6, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.ad4] // CHECK:STDOUT: %bound_method.loc9_11.1: = bound_method %addr, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc9_11.2: = bound_method %addr, %specific_fn -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc9_11.2(%addr) -// CHECK:STDOUT: %.loc9_11.1: init %Optional.065 = converted %addr, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc9_11.2(%addr) +// CHECK:STDOUT: %.loc9_11.1: init %Optional.065 = converted %addr, %U.as_type.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc9_11.2: ref %Optional.065 = temporary_storage // CHECK:STDOUT: %.loc9_11.3: ref %Optional.065 = temporary %.loc9_11.2, %.loc9_11.1 // CHECK:STDOUT: %.loc9_11.4: %Optional.065 = acquire_value %.loc9_11.3 @@ -1905,20 +1905,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.1a0: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.065)> [concrete] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.8cb: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.872)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.a0a: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.a0a) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.3a6: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.ce6 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.77f: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.3a6) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.0a72: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.77f) [concrete] -// CHECK:STDOUT: %.9b3: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.0a72, %ImplicitAs.facet.77f [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.bd4, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.83b: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.872) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.8cb = facet_value %ptr.5c7, (%OptionalAs.impl_witness.83b) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.de6: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.ad4: %U.as_type.as.ImplicitAs.impl.Convert.type.b4e = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.a29: %ImplicitAs.type.1a0 = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.de6) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.673: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.065, %ImplicitAs.facet.a29) [concrete] +// CHECK:STDOUT: %.8ca: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.673, %ImplicitAs.facet.a29 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.ad4, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.872, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.type: type = cpp_overload_set_type @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete] // CHECK:STDOUT: %Indirect__carbon_thunk.type: type = fn_type @Indirect__carbon_thunk [concrete] @@ -1968,10 +1968,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: %Indirect.cpp_overload_set.value: %Indirect.cpp_overload_set.type = cpp_overload_set_value @Indirect.cpp_overload_set [concrete = constants.%Indirect.cpp_overload_set.value] // CHECK:STDOUT: %Indirect__carbon_thunk.decl: %Indirect__carbon_thunk.type = fn_decl @Indirect__carbon_thunk [concrete = constants.%Indirect__carbon_thunk] { // CHECK:STDOUT: @@ -2004,12 +2004,12 @@ fn F() { // CHECK:STDOUT: %Direct.ref: %Direct.cpp_overload_set.type = name_ref Direct, imports.%Direct.cpp_overload_set.value [concrete = constants.%Direct.cpp_overload_set.value] // CHECK:STDOUT: %s.ref: ref %S = name_ref s, %s // CHECK:STDOUT: %addr.loc11: %ptr.5c7 = addr_of %s.ref -// CHECK:STDOUT: %impl.elem0: %.9b3 = impl_witness_access constants.%ImplicitAs.impl_witness.3a6, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.bd4] +// CHECK:STDOUT: %impl.elem0: %.8ca = impl_witness_access constants.%ImplicitAs.impl_witness.de6, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.ad4] // CHECK:STDOUT: %bound_method.loc11_14.1: = bound_method %addr.loc11, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.872, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc11_14.2: = bound_method %addr.loc11, %specific_fn -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc11_14.2(%addr.loc11) -// CHECK:STDOUT: %.loc11_14.1: init %Optional.065 = converted %addr.loc11, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.065 = call %bound_method.loc11_14.2(%addr.loc11) +// CHECK:STDOUT: %.loc11_14.1: init %Optional.065 = converted %addr.loc11, %U.as_type.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc11_14.2: ref %Optional.065 = temporary_storage // CHECK:STDOUT: %.loc11_14.3: ref %Optional.065 = temporary %.loc11_14.2, %.loc11_14.1 // CHECK:STDOUT: %.loc11_14.4: %Optional.065 = acquire_value %.loc11_14.3 diff --git a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon index 8d5f23dc55a5..2680cda96d8f 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/reference.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/reference.carbon @@ -383,14 +383,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4cd: = custom_witness (%S.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.889: %Default.type = facet_value %S, (%custom_witness.4cd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a91: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.889) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.b0b: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a91) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f9c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.889) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.13a: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.f9c) [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] @@ -400,8 +400,8 @@ fn F() { // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.3b9: = custom_witness (%T.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.2fe: %Default.type = facet_value %T.e15, (%custom_witness.3b9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1bd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.2fe) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ac4: %DefaultOrUnformed.type = facet_value %T.e15, (%DefaultOrUnformed.impl_witness.1bd) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.886: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.2fe) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.30e: %DefaultOrUnformed.type = facet_value %T.e15, (%DefaultOrUnformed.impl_witness.886) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: %T.cpp_destructor.type: type = fn_type @T.cpp_destructor [concrete] @@ -416,8 +416,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesLValue.cpp_overload_set.value: %TakesLValue.cpp_overload_set.type = cpp_overload_set_value @TakesLValue.cpp_overload_set [concrete = constants.%TakesLValue.cpp_overload_set.value] // CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.e15] {} {} // CHECK:STDOUT: } @@ -429,14 +429,14 @@ fn F() { // CHECK:STDOUT: %v.var_patt: %pattern_type.7da = var_pattern %v.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %v.var: ref %S = var %v.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a91) [concrete = constants.%DefaultOrUnformed.facet.b0b] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.b0b] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f9c) [concrete = constants.%DefaultOrUnformed.facet.13a] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.13a] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_3: ref %S = splice_block %v.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %S to %.loc8_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() -// CHECK:STDOUT: assign %v.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %S to %.loc8_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: assign %v.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 // CHECK:STDOUT: %.loc8_13: type = splice_block %S.ref.loc8 [concrete = constants.%S] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc8: type = name_ref S, imports.%S.decl [concrete = constants.%S] @@ -468,14 +468,14 @@ fn F() { // CHECK:STDOUT: %t.var_patt: %pattern_type.e6b = var_pattern %t.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %t.var: ref %T.e15 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.e15, (constants.%DefaultOrUnformed.impl_witness.1bd) [concrete = constants.%DefaultOrUnformed.facet.ac4] -// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.e15, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.ac4] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc30: %DefaultOrUnformed.type = facet_value constants.%T.e15, (constants.%DefaultOrUnformed.impl_witness.886) [concrete = constants.%DefaultOrUnformed.facet.30e] +// CHECK:STDOUT: %.loc30_15.1: %DefaultOrUnformed.type = converted constants.%T.e15, %DefaultOrUnformed.facet.loc30 [concrete = constants.%DefaultOrUnformed.facet.30e] // CHECK:STDOUT: %as_type.loc30: type = facet_access_type %.loc30_15.1 [concrete = constants.%T.e15] // CHECK:STDOUT: %.loc30_15.2: type = converted %.loc30_15.1, %as_type.loc30 [concrete = constants.%T.e15] // CHECK:STDOUT: // CHECK:STDOUT: %.loc30_3: ref %T.e15 = splice_block %t.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.e15 to %.loc30_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() -// CHECK:STDOUT: assign %t.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc30 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30: init %T.e15 to %.loc30_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc30 // CHECK:STDOUT: %.loc30_13: type = splice_block %T.ref [concrete = constants.%T.e15] { // CHECK:STDOUT: %Cpp.ref.loc30: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.e15] @@ -489,14 +489,14 @@ fn F() { // CHECK:STDOUT: %u.var_patt: %pattern_type.7da = var_pattern %u.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %u.var: ref %S = var %u.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a91) [concrete = constants.%DefaultOrUnformed.facet.b0b] -// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.b0b] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc41: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f9c) [concrete = constants.%DefaultOrUnformed.facet.13a] +// CHECK:STDOUT: %.loc41_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc41 [concrete = constants.%DefaultOrUnformed.facet.13a] // CHECK:STDOUT: %as_type.loc41: type = facet_access_type %.loc41_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc41_15.2: type = converted %.loc41_15.1, %as_type.loc41 [concrete = constants.%S] // CHECK:STDOUT: // CHECK:STDOUT: %.loc41_3: ref %S = splice_block %u.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc41: init %S to %.loc41_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() -// CHECK:STDOUT: assign %u.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc41 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc41: init %S to %.loc41_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() +// CHECK:STDOUT: assign %u.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc41 // CHECK:STDOUT: %.loc41_13: type = splice_block %S.ref.loc41 [concrete = constants.%S] { // CHECK:STDOUT: %Cpp.ref.loc41: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc41: type = name_ref S, imports.%S.decl [concrete = constants.%S] @@ -578,14 +578,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4cd: = custom_witness (%S.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.889: %Default.type = facet_value %S, (%custom_witness.4cd) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a91: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.889) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.b0b: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a91) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.f9c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.889) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.13a: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.f9c) [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.type: type = cpp_overload_set_type @TakesRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete] // CHECK:STDOUT: %T.e15: type = class_type @T [concrete] @@ -594,8 +594,8 @@ fn F() { // CHECK:STDOUT: %T.Op: %T.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.3b9: = custom_witness (%T.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.2fe: %Default.type = facet_value %T.e15, (%custom_witness.3b9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.1bd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.2fe) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.ac4: %DefaultOrUnformed.type = facet_value %T.e15, (%DefaultOrUnformed.impl_witness.1bd) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.886: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.2fe) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.30e: %DefaultOrUnformed.type = facet_value %T.e15, (%DefaultOrUnformed.impl_witness.886) [concrete] // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %S.val: %S = struct_value () [concrete] // CHECK:STDOUT: %const: type = const_type %S [concrete] @@ -614,8 +614,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %TakesRValue.cpp_overload_set.value: %TakesRValue.cpp_overload_set.type = cpp_overload_set_value @TakesRValue.cpp_overload_set [concrete = constants.%TakesRValue.cpp_overload_set.value] // CHECK:STDOUT: %T.decl: type = class_decl @T [concrete = constants.%T.e15] {} {} // CHECK:STDOUT: } @@ -627,14 +627,14 @@ fn F() { // CHECK:STDOUT: %s.var_patt: %pattern_type.7da = var_pattern %s.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %s.var: ref %S = var %s.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a91) [concrete = constants.%DefaultOrUnformed.facet.b0b] -// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.b0b] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.f9c) [concrete = constants.%DefaultOrUnformed.facet.13a] +// CHECK:STDOUT: %.loc8_15.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.13a] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_15.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc8_15.2: type = converted %.loc8_15.1, %as_type.loc8 [concrete = constants.%S] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_3: ref %S = splice_block %s.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %S to %.loc8_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() -// CHECK:STDOUT: assign %s.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %S to %.loc8_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: assign %s.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 // CHECK:STDOUT: %.loc8_13: type = splice_block %S.ref.loc8 [concrete = constants.%S] { // CHECK:STDOUT: %Cpp.ref.loc8: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc8: type = name_ref S, imports.%S.decl [concrete = constants.%S] @@ -648,14 +648,14 @@ fn F() { // CHECK:STDOUT: %t.var_patt: %pattern_type.e6b = var_pattern %t.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %t.var: ref %T.e15 = var %t.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.e15, (constants.%DefaultOrUnformed.impl_witness.1bd) [concrete = constants.%DefaultOrUnformed.facet.ac4] -// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.e15, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.ac4] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc19: %DefaultOrUnformed.type = facet_value constants.%T.e15, (constants.%DefaultOrUnformed.impl_witness.886) [concrete = constants.%DefaultOrUnformed.facet.30e] +// CHECK:STDOUT: %.loc19_15.1: %DefaultOrUnformed.type = converted constants.%T.e15, %DefaultOrUnformed.facet.loc19 [concrete = constants.%DefaultOrUnformed.facet.30e] // CHECK:STDOUT: %as_type.loc19: type = facet_access_type %.loc19_15.1 [concrete = constants.%T.e15] // CHECK:STDOUT: %.loc19_15.2: type = converted %.loc19_15.1, %as_type.loc19 [concrete = constants.%T.e15] // CHECK:STDOUT: // CHECK:STDOUT: %.loc19_3: ref %T.e15 = splice_block %t.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.e15 to %.loc19_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() -// CHECK:STDOUT: assign %t.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19: init %T.e15 to %.loc19_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: assign %t.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc19 // CHECK:STDOUT: %.loc19_13: type = splice_block %T.ref [concrete = constants.%T.e15] { // CHECK:STDOUT: %Cpp.ref.loc19: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %T.ref: type = name_ref T, imports.%T.decl [concrete = constants.%T.e15] diff --git a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon index 74389332d291..fc70c9b9e724 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/struct.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/struct.carbon @@ -654,14 +654,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %S.Op.type: type = fn_type @S.Op [concrete] // CHECK:STDOUT: %S.Op: %S.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.4c9: = custom_witness (%S.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.dcf: %Default.type = facet_value %S, (%custom_witness.4c9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.33e: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.dcf) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.33e) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.a95: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.dcf) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %S, (%DefaultOrUnformed.impl_witness.a95) [concrete] // CHECK:STDOUT: %S.cpp_destructor.type: type = fn_type @S.cpp_destructor [concrete] // CHECK:STDOUT: %S.cpp_destructor: %S.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -683,8 +683,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %S) { @@ -700,14 +700,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.cd8 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %S = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.33e) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%S, (constants.%DefaultOrUnformed.impl_witness.a95) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%S, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%S] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%S] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_3: ref %S = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %S to %.loc10_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %S to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc10_22: type = splice_block %S.ref.loc10 [concrete = constants.%S] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc10: = name_ref N, imports.%N [concrete = imports.%N] @@ -781,14 +781,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.8f6: = custom_witness (%O.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.d7b: %Default.type = facet_value %O, (%custom_witness.8f6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e05: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.e05) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.ebd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.ebd) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -806,8 +806,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%s.param: %S) { @@ -823,14 +823,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.cff = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.e05) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.ebd) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] // CHECK:STDOUT: // CHECK:STDOUT: %.loc9_3: ref %O = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc9_20: type = splice_block %O.ref.loc9 [concrete = constants.%O] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc9: type = name_ref O, imports.%O.decl [concrete = constants.%O] diff --git a/toolchain/check/testdata/interop/cpp/function/import/union.carbon b/toolchain/check/testdata/interop/cpp/function/import/union.carbon index 131b5131899f..e7c09d47c384 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/union.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/union.carbon @@ -579,14 +579,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %U.Op.type: type = fn_type @U.Op [concrete] // CHECK:STDOUT: %U.Op: %U.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.cb9: = custom_witness (%U.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.916: %Default.type = facet_value %U, (%custom_witness.cb9) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.225: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.916) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.225) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.41c: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.916) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %U, (%DefaultOrUnformed.impl_witness.41c) [concrete] // CHECK:STDOUT: %U.cpp_destructor.type: type = fn_type @U.cpp_destructor [concrete] // CHECK:STDOUT: %U.cpp_destructor: %U.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -608,8 +608,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%u.param: %U) { @@ -625,14 +625,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.eb9 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %U = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.225) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%U, (constants.%DefaultOrUnformed.impl_witness.41c) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc10_24.1: %DefaultOrUnformed.type = converted constants.%U, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc10_24.1 [concrete = constants.%U] // CHECK:STDOUT: %.loc10_24.2: type = converted %.loc10_24.1, %as_type [concrete = constants.%U] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_3: ref %U = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %U to %.loc10_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %U to %.loc10_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc10_22: type = splice_block %U.ref.loc10 [concrete = constants.%U] { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %N.ref.loc10: = name_ref N, imports.%N [concrete = imports.%N] @@ -706,14 +706,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %O.Op.type: type = fn_type @O.Op [concrete] // CHECK:STDOUT: %O.Op: %O.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.8f6: = custom_witness (%O.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.d7b: %Default.type = facet_value %O, (%custom_witness.8f6) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.e05: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.e05) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.ebd: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.d7b) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %O, (%DefaultOrUnformed.impl_witness.ebd) [concrete] // CHECK:STDOUT: %O.cpp_destructor.type: type = fn_type @O.cpp_destructor [concrete] // CHECK:STDOUT: %O.cpp_destructor: %O.cpp_destructor.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -731,8 +731,8 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%u.param: %U) { @@ -748,14 +748,14 @@ fn F() { // CHECK:STDOUT: %x.var_patt: %pattern_type.cff = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %O = var %x.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.e05) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%O, (constants.%DefaultOrUnformed.impl_witness.ebd) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc9_22.1: %DefaultOrUnformed.type = converted constants.%O, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc9_22.1 [concrete = constants.%O] // CHECK:STDOUT: %.loc9_22.2: type = converted %.loc9_22.1, %as_type [concrete = constants.%O] // CHECK:STDOUT: // CHECK:STDOUT: %.loc9_3: ref %O = splice_block %x.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %O to %.loc9_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc9_20: type = splice_block %O.ref.loc9 [concrete = constants.%O] { // CHECK:STDOUT: %Cpp.ref.loc9: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %O.ref.loc9: type = name_ref O, imports.%O.decl [concrete = constants.%O] diff --git a/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon index 5871fd06b666..eafcf24e74bc 100644 --- a/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/import/void_pointer.carbon @@ -223,20 +223,20 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.type.3c0: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.804)> [concrete] // CHECK:STDOUT: %OptionalAs.type.ea5: type = facet_type <@OptionalAs, @OptionalAs(%T.542)> [symbolic] // CHECK:STDOUT: %U.2d2: %OptionalAs.type.ea5 = symbolic_binding U, 1 [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%T.542, %U.2d2) [symbolic] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.cb0: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5 = struct_value () [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.79d: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%T.542, %U.2d2) [symbolic] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.dd8: %U.as_type.as.ImplicitAs.impl.Convert.type.79d = struct_value () [symbolic] // CHECK:STDOUT: %OptionalAs.type.1af: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.92c)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.542) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.d8f: %T.binding.as_type.as.OptionalAs.impl.Convert.type.d22 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.7cf: = impl_witness imports.%OptionalAs.impl_witness_table.cea, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.92c) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.1af = facet_value %ptr.874, (%OptionalAs.impl_witness.7cf) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.a7d: = impl_witness imports.%ImplicitAs.impl_witness_table.840, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4b4: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.71c(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.d74: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.4b4 = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.d14: %ImplicitAs.type.3c0 = facet_value %ptr.874, (%ImplicitAs.impl_witness.a7d) [concrete] -// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.baa: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.804, %ImplicitAs.facet.d14) [concrete] -// CHECK:STDOUT: %.73c: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.baa, %ImplicitAs.facet.d14 [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.d74, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.type.072: type = fn_type @T.as_type.as.OptionalAs.impl.Convert, @T.as_type.as.OptionalAs.impl(%T.542) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OptionalAs.impl.Convert.6f5: %T.as_type.as.OptionalAs.impl.Convert.type.072 = struct_value () [symbolic] +// CHECK:STDOUT: %OptionalAs.impl_witness.585: = impl_witness imports.%OptionalAs.impl_witness_table.45f, @T.as_type.as.OptionalAs.impl(%OptionalStorage.facet.92c) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.1af = facet_value %ptr.874, (%OptionalAs.impl_witness.585) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.80b: = impl_witness imports.%ImplicitAs.impl_witness_table.67f, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.type.b7e: type = fn_type @U.as_type.as.ImplicitAs.impl.Convert.2, @U.as_type.as.ImplicitAs.impl.1a8(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.963: %U.as_type.as.ImplicitAs.impl.Convert.type.b7e = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.ec1: %ImplicitAs.type.3c0 = facet_value %ptr.874, (%ImplicitAs.impl_witness.80b) [concrete] +// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.e48: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Optional.804, %ImplicitAs.facet.ec1) [concrete] +// CHECK:STDOUT: %.fbe: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.e48, %ImplicitAs.facet.ec1 [concrete] +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.as_type.as.ImplicitAs.impl.Convert.963, @U.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.92c, %OptionalAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.3: type = fn_type @Destroy.Op.loc10_11.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.3: %Destroy.Op.type.bae255.3 = struct_value () [concrete] // CHECK:STDOUT: } @@ -265,10 +265,10 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.059: @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert.type (%U.binding.as_type.as.ImplicitAs.impl.Convert.type.4c5) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.binding.as_type.as.ImplicitAs.impl.71c.%U.binding.as_type.as.ImplicitAs.impl.Convert (constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.cb0)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.840 = impl_witness_table (%Core.import_ref.059), @U.binding.as_type.as.ImplicitAs.impl.71c [concrete] -// CHECK:STDOUT: %Core.import_ref.6fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.d22) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.d8f)] -// CHECK:STDOUT: %OptionalAs.impl_witness_table.cea = impl_witness_table (%Core.import_ref.6fb), @T.binding.as_type.as.OptionalAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.92e: @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert.type (%U.as_type.as.ImplicitAs.impl.Convert.type.79d) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @U.as_type.as.ImplicitAs.impl.1a8.%U.as_type.as.ImplicitAs.impl.Convert (constants.%U.as_type.as.ImplicitAs.impl.Convert.dd8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.67f = impl_witness_table (%Core.import_ref.92e), @U.as_type.as.ImplicitAs.impl.1a8 [concrete] +// CHECK:STDOUT: %Core.import_ref.33c: @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert.type (%T.as_type.as.OptionalAs.impl.Convert.type.072) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OptionalAs.impl.%T.as_type.as.OptionalAs.impl.Convert (constants.%T.as_type.as.OptionalAs.impl.Convert.6f5)] +// CHECK:STDOUT: %OptionalAs.impl_witness_table.45f = impl_witness_table (%Core.import_ref.33c), @T.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%input.param: %ptr.874) { @@ -276,12 +276,12 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %input.ref: %ptr.874 = name_ref input, %input -// CHECK:STDOUT: %impl.elem0: %.73c = impl_witness_access constants.%ImplicitAs.impl_witness.a7d, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.d74] +// CHECK:STDOUT: %impl.elem0: %.fbe = impl_witness_access constants.%ImplicitAs.impl_witness.80b, element0 [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.963] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.92c, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.92c, constants.%OptionalAs.facet) [concrete = constants.%U.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.804 = call %bound_method.loc10_11.2(%input.ref) -// CHECK:STDOUT: %.loc10_11.1: init %Optional.804 = converted %input.ref, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.804 = call %bound_method.loc10_11.2(%input.ref) +// CHECK:STDOUT: %.loc10_11.1: init %Optional.804 = converted %input.ref, %U.as_type.as.ImplicitAs.impl.Convert.call // CHECK:STDOUT: %.loc10_11.2: ref %Optional.804 = temporary_storage // CHECK:STDOUT: %.loc10_11.3: ref %Optional.804 = temporary %.loc10_11.2, %.loc10_11.1 // CHECK:STDOUT: %.loc10_11.4: %Optional.804 = acquire_value %.loc10_11.3 diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon index 6dbd863ed0a7..ca8fc9546a4f 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/arithmetic.carbon @@ -513,14 +513,14 @@ fn F() { // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %unsigned_int.Op.type: type = fn_type @unsigned_int.Op [concrete] // CHECK:STDOUT: %unsigned_int.Op: %unsigned_int.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.bd1: = custom_witness (%unsigned_int.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.6ad: %Default.type = facet_value %unsigned_int, (%custom_witness.bd1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.099: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.6ad) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.099) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fa8: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.6ad) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %unsigned_int, (%DefaultOrUnformed.impl_witness.fa8) [concrete] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %u32: type = class_type @UInt, @UInt(%int_32) [concrete] // CHECK:STDOUT: %pattern_type.4a9: type = pattern_type %u32 [concrete] @@ -538,8 +538,8 @@ fn F() { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.decl: type = class_decl @unsigned_int [concrete = constants.%unsigned_int] {} {} -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: %unsigned_int.foo.cpp_overload_set.value: %unsigned_int.foo.cpp_overload_set.type = cpp_overload_set_value @unsigned_int.foo.cpp_overload_set [concrete = constants.%unsigned_int.foo.cpp_overload_set.value] // CHECK:STDOUT: %unsigned_int.foo.decl: %unsigned_int.foo.type = fn_decl @unsigned_int.foo [concrete = constants.%unsigned_int.foo] { // CHECK:STDOUT: %self.param_patt: %pattern_type.5ec = ref_param_pattern [concrete] @@ -560,14 +560,14 @@ fn F() { // CHECK:STDOUT: %unsigned_int.var_patt: %pattern_type.5ec = var_pattern %unsigned_int.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %unsigned_int.var: ref %unsigned_int = var %unsigned_int.var_patt -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.099) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%unsigned_int, (constants.%DefaultOrUnformed.impl_witness.fa8) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc12_38.1: %DefaultOrUnformed.type = converted constants.%unsigned_int, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc12_38.1 [concrete = constants.%unsigned_int] // CHECK:STDOUT: %.loc12_38.2: type = converted %.loc12_38.1, %as_type [concrete = constants.%unsigned_int] // CHECK:STDOUT: // CHECK:STDOUT: %.loc12_3: ref %unsigned_int = splice_block %unsigned_int.var {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %unsigned_int to %.loc12_3 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign %unsigned_int.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %unsigned_int to %.loc12_3 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign %unsigned_int.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: %.loc12_25: type = splice_block %unsigned_int.ref.loc12 [concrete = constants.%unsigned_int] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_int.ref.loc12: type = name_ref unsigned_int, imports.%unsigned_int.decl [concrete = constants.%unsigned_int] diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon index 80f591708169..b2945adeb0ad 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.llp64.carbon @@ -1572,143 +1572,143 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5a4: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %EqWith.type.d8f: type = facet_type <@EqWith, @EqWith(%i32)> [concrete] // CHECK:STDOUT: %T.57d: %ImplicitAs.type.819 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.f13(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.c90ef2.1: %Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.f13(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.c90ef2.2: %Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.7da93b.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.f13(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c91b06.1: %Cpp.long.as.EqWith.impl.Equal.type.7da93b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.7da93b.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.f13(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.c91b06.2: %Cpp.long.as.EqWith.impl.Equal.type.7da93b.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.503814.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.583(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.6454e5.1: %Cpp.long.as.EqWith.impl.NotEqual.type.503814.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.503814.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.583(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.6454e5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.503814.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.3e10d0.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.583(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.ee470e.1: %Cpp.long.as.EqWith.impl.Equal.type.3e10d0.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.3e10d0.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.583(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.ee470e.2: %Cpp.long.as.EqWith.impl.Equal.type.3e10d0.2 = struct_value () [symbolic] // CHECK:STDOUT: %EqWith.type.ded: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.15a: = impl_witness imports.%EqWith.impl_witness_table.44b, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.0f3e3b.1: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.6a28a6.1: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.0f3e3b.2: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.6a28a6.2: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.fd1: %EqWith.type.d8f = facet_value %Cpp.long, (%EqWith.impl_witness.15a) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.366: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i32, %EqWith.facet.fd1) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.32d: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i32, %EqWith.facet.fd1) [concrete] -// CHECK:STDOUT: %.09a: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.366, %EqWith.facet.fd1 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.b56f6d.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.0f3e3b.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc39: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc39) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.495: = impl_witness imports.%EqWith.impl_witness_table.2e6, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.af4430.1: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.016eee.1: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.af4430.2: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.016eee.2: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.cee: %EqWith.type.d8f = facet_value %Cpp.long, (%EqWith.impl_witness.495) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.994: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i32, %EqWith.facet.cee) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.cd4: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i32, %EqWith.facet.cee) [concrete] +// CHECK:STDOUT: %.a84: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.994, %EqWith.facet.cee [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.604db6.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.af4430.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f0, %ImplicitAs.facet.174 [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert: %i32.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.b56f6d.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.0f3e3b.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.1c7: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.32d, %EqWith.facet.fd1 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.25d32e.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.6a28a6.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.25d32e.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.6a28a6.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.604db6.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.af4430.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.7cb: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.cd4, %EqWith.facet.cee [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.a2f319.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.016eee.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.a2f319.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.016eee.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %OrderedWith.type.243: type = facet_type <@OrderedWith, @OrderedWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.dd28ba.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.dd28ba.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.662b24.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.02ce94.1: %Cpp.long.as.OrderedWith.impl.Greater.type.662b24.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.662b24.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.02ce94.2: %Cpp.long.as.OrderedWith.impl.Greater.type.662b24.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.7e103a.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.7e103a.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.a59daa.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.954f71.1: %Cpp.long.as.OrderedWith.impl.Less.type.a59daa.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.a59daa.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.15a(%T.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.954f71.2: %Cpp.long.as.OrderedWith.impl.Less.type.a59daa.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.47ebeb.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.47ebeb.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.a8f57e.1: %Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.a8f57e.2: %Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.85d51b.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.85d51b.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.520440.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.3d32d0.1: %Cpp.long.as.OrderedWith.impl.Less.type.520440.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.520440.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.1c6(%T.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.3d32d0.2: %Cpp.long.as.OrderedWith.impl.Less.type.520440.2 = struct_value () [symbolic] // CHECK:STDOUT: %OrderedWith.type.358: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.576: = impl_witness imports.%OrderedWith.impl_witness_table.9c6, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.5299ce.1: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.9898ff.1: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.5299ce.2: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.9898ff.2: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.19d: %OrderedWith.type.243 = facet_value %Cpp.long, (%OrderedWith.impl_witness.576) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.280: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.19d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.c5d: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.19d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.2e4: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.19d) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.353: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.19d) [concrete] -// CHECK:STDOUT: %.883: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.2e4, %OrderedWith.facet.19d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.760220.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.9898ff.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.760220.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.9898ff.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.481: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.280, %OrderedWith.facet.19d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.89e78a.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.5299ce.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.89e78a.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.5299ce.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.753: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.353, %OrderedWith.facet.19d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e67d4e.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e67d4e.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.14a: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.c5d, %OrderedWith.facet.19d [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9548d5.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9548d5.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.8e5: = impl_witness imports.%EqWith.impl_witness_table.44b, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.416d09.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.6ed862.1: %Cpp.long.as.EqWith.impl.Equal.type.416d09.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.f686b3.1: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.416d09.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.6ed862.2: %Cpp.long.as.EqWith.impl.Equal.type.416d09.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.f13(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.f686b3.2: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.3d4: %EqWith.type.ded = facet_value %Cpp.long, (%EqWith.impl_witness.8e5) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.d3d: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.3d4) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.510: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.3d4) [concrete] -// CHECK:STDOUT: %.a03: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.d3d, %EqWith.facet.3d4 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.334ae9.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.6ed862.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.334ae9.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.6ed862.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %.9a1: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.510, %EqWith.facet.3d4 [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.5aa006.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.f686b3.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.5aa006.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.f686b3.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.52f: = impl_witness imports.%OrderedWith.impl_witness_table.9c6, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.0de767.1: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.74a807.1: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.0de767.2: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.74a807.2: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.15a(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.eef: %OrderedWith.type.358 = facet_value %Cpp.long, (%OrderedWith.impl_witness.52f) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.af4: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.eef) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.9ec: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.eef) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.327: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.eef) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.d4c: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.eef) [concrete] -// CHECK:STDOUT: %.5af: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.327, %OrderedWith.facet.eef [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.b2149b.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.74a807.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.b2149b.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.74a807.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %.6b7: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.af4, %OrderedWith.facet.eef [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.b6fc5e.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.0de767.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.b6fc5e.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.0de767.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %.1f9: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.d4c, %OrderedWith.facet.eef [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.f90679.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.f90679.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %.76b: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.9ec, %OrderedWith.facet.eef [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.c5c24a.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.c5c24a.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.e41: = impl_witness imports.%OrderedWith.impl_witness_table.6e7, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.4bd542.1: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.fd6565.1: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.4bd542.2: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.fd6565.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.012: %OrderedWith.type.243 = facet_value %Cpp.long, (%OrderedWith.impl_witness.e41) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.8ec: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.012) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.c79: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.012) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.fa2: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.012) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.c30: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i32, %OrderedWith.facet.012) [concrete] +// CHECK:STDOUT: %.410: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.fa2, %OrderedWith.facet.012 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.86d25e.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.fd6565.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.86d25e.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.fd6565.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.693: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.8ec, %OrderedWith.facet.012 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.098b91.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.4bd542.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.098b91.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.4bd542.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.cff: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.c30, %OrderedWith.facet.012 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.157c2e.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.157c2e.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.139: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.c79, %OrderedWith.facet.012 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.de1764.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.de1764.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.b3f: = impl_witness imports.%EqWith.impl_witness_table.2e6, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.3a4fa9.1: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.139b50.1: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.3a4fa9.2: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.583(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.139b50.2: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.1c2: %EqWith.type.ded = facet_value %Cpp.long, (%EqWith.impl_witness.b3f) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.278: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.1c2) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.937: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.1c2) [concrete] +// CHECK:STDOUT: %.5de: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.278, %EqWith.facet.1c2 [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.0c655b.1: = specific_function %Cpp.long.as.EqWith.impl.Equal.3a4fa9.2, @Cpp.long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.0c655b.2: = specific_function %Cpp.long.as.EqWith.impl.Equal.3a4fa9.1, @Cpp.long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %.97e: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.937, %EqWith.facet.1c2 [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.1ba709.1: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.139b50.2, @Cpp.long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.1ba709.2: = specific_function %Cpp.long.as.EqWith.impl.NotEqual.139b50.1, @Cpp.long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.26e: = impl_witness imports.%OrderedWith.impl_witness_table.6e7, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.cc257a.1: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.afe0c2.1: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.cc257a.2: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.afe0c2.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.1c6(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.1f7: %OrderedWith.type.358 = facet_value %Cpp.long, (%OrderedWith.impl_witness.26e) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.0f3: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.1f7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.ab3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.1f7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.a37: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.1f7) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.f82: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.1f7) [concrete] +// CHECK:STDOUT: %.81e: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.a37, %OrderedWith.facet.1f7 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.d98231.1: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.afe0c2.2, @Cpp.long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.d98231.2: = specific_function %Cpp.long.as.OrderedWith.impl.Greater.afe0c2.1, @Cpp.long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %.8d3: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.0f3, %OrderedWith.facet.1f7 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.92e5d7.1: = specific_function %Cpp.long.as.OrderedWith.impl.Less.cc257a.2, @Cpp.long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.92e5d7.2: = specific_function %Cpp.long.as.OrderedWith.impl.Less.cc257a.1, @Cpp.long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %.a3d: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.f82, %OrderedWith.facet.1f7 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.46a5e8.1: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.2, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.46a5e8.2: = specific_function %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.1, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %.510: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.ab3, %OrderedWith.facet.1f7 [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4c920e.1: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.2, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4c920e.2: = specific_function %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.1, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1718,22 +1718,22 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.b8a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b38 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] -// CHECK:STDOUT: %Core.import_ref.489: @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.Equal.type.2 (%Cpp.long.as.EqWith.impl.Equal.type.7da93b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.Equal.2 (constants.%Cpp.long.as.EqWith.impl.Equal.c91b06.1)] -// CHECK:STDOUT: %Core.import_ref.a67: @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long.as.EqWith.impl.NotEqual.c90ef2.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.44b = impl_witness_table (%Core.import_ref.489, %Core.import_ref.a67), @Cpp.long.as.EqWith.impl.f13 [concrete] -// CHECK:STDOUT: %Core.NotEqual.b1f: @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long.as.EqWith.impl.NotEqual.type.b3148d.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long.as.EqWith.impl.NotEqual.c90ef2.2)] -// CHECK:STDOUT: %Core.Equal.0ad: @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.Equal.type.1 (%Cpp.long.as.EqWith.impl.Equal.type.7da93b.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long.as.EqWith.impl.f13.%Cpp.long.as.EqWith.impl.Equal.1 (constants.%Cpp.long.as.EqWith.impl.Equal.c91b06.2)] +// CHECK:STDOUT: %Core.import_ref.93f: @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.Equal.type.2 (%Cpp.long.as.EqWith.impl.Equal.type.3e10d0.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.Equal.2 (constants.%Cpp.long.as.EqWith.impl.Equal.ee470e.1)] +// CHECK:STDOUT: %Core.import_ref.576: @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long.as.EqWith.impl.NotEqual.type.503814.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long.as.EqWith.impl.NotEqual.6454e5.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.2e6 = impl_witness_table (%Core.import_ref.93f, %Core.import_ref.576), @Cpp.long.as.EqWith.impl.583 [concrete] +// CHECK:STDOUT: %Core.NotEqual.bac: @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long.as.EqWith.impl.NotEqual.type.503814.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long.as.EqWith.impl.NotEqual.6454e5.2)] +// CHECK:STDOUT: %Core.Equal.3f1: @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.Equal.type.1 (%Cpp.long.as.EqWith.impl.Equal.type.3e10d0.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long.as.EqWith.impl.583.%Cpp.long.as.EqWith.impl.Equal.1 (constants.%Cpp.long.as.EqWith.impl.Equal.ee470e.2)] // CHECK:STDOUT: %Core.import_ref.4fa: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.5ad = impl_witness_table (%Core.import_ref.4fa), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.959: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Less.type.2 (%Cpp.long.as.OrderedWith.impl.Less.type.a59daa.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long.as.OrderedWith.impl.Less.954f71.1)] -// CHECK:STDOUT: %Core.import_ref.c23: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.7e103a.1)] -// CHECK:STDOUT: %Core.import_ref.df7: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.662b24.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.02ce94.1)] -// CHECK:STDOUT: %Core.import_ref.a61: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.dd28ba.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.9c6 = impl_witness_table (%Core.import_ref.959, %Core.import_ref.c23, %Core.import_ref.df7, %Core.import_ref.a61), @Cpp.long.as.OrderedWith.impl.15a [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.76e: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.74811b.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.dd28ba.2)] -// CHECK:STDOUT: %Core.Greater.9da: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long.as.OrderedWith.impl.Greater.type.662b24.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long.as.OrderedWith.impl.Greater.02ce94.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.4a6: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.4aa4c3.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.7e103a.2)] -// CHECK:STDOUT: %Core.Less.c86: @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Less.type.1 (%Cpp.long.as.OrderedWith.impl.Less.type.a59daa.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.15a.%Cpp.long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long.as.OrderedWith.impl.Less.954f71.2)] +// CHECK:STDOUT: %Core.import_ref.14c: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Less.type.2 (%Cpp.long.as.OrderedWith.impl.Less.type.520440.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long.as.OrderedWith.impl.Less.3d32d0.1)] +// CHECK:STDOUT: %Core.import_ref.1ec: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.85d51b.1)] +// CHECK:STDOUT: %Core.import_ref.005: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.a8f57e.1)] +// CHECK:STDOUT: %Core.import_ref.a21: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.47ebeb.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.6e7 = impl_witness_table (%Core.import_ref.14c, %Core.import_ref.1ec, %Core.import_ref.005, %Core.import_ref.a21), @Cpp.long.as.OrderedWith.impl.1c6 [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.786: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.b86550.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.47ebeb.2)] +// CHECK:STDOUT: %Core.Greater.64f: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long.as.OrderedWith.impl.Greater.type.b45ebb.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long.as.OrderedWith.impl.Greater.a8f57e.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.9f4: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.17fc4f.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.85d51b.2)] +// CHECK:STDOUT: %Core.Less.287: @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Less.type.1 (%Cpp.long.as.OrderedWith.impl.Less.type.520440.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.1c6.%Cpp.long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long.as.OrderedWith.impl.Less.3d32d0.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLeftSide() { @@ -1755,23 +1755,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc9_21.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.09a = impl_witness_access constants.%EqWith.impl_witness.15a, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.0f3e3b.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.a84 = impl_witness_access constants.%EqWith.impl_witness.495, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.af4430.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.b56f6d.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.604db6.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.1 = specific_constant imports.%Core.Equal.0ad, @Cpp.long.as.EqWith.impl.f13(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.0f3e3b.1] -// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long.as.EqWith.impl.Equal.type.c1ed1a.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.0f3e3b.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.1 = specific_constant imports.%Core.Equal.3f1, @Cpp.long.as.EqWith.impl.583(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.af4430.1] +// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long.as.EqWith.impl.Equal.type.b2b39a.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.af4430.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.bound.loc10: = bound_method %a.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long = call %bound_method.loc10_5.3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long = converted %b.ref.loc10, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.b56f6d.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.604db6.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref.loc10, %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10_8: init %Cpp.long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10_8 @@ -1779,23 +1779,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.4(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.1c7 = impl_witness_access constants.%EqWith.impl_witness.15a, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.6a28a6.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.7cb = impl_witness_access constants.%EqWith.impl_witness.495, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.016eee.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.25d32e.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.a2f319.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.1 = specific_constant imports.%Core.NotEqual.b1f, @Cpp.long.as.EqWith.impl.f13(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.6a28a6.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long.as.EqWith.impl.NotEqual.type.b6d1d8.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.6a28a6.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.1 = specific_constant imports.%Core.NotEqual.bac, @Cpp.long.as.EqWith.impl.583(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.016eee.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long.as.EqWith.impl.NotEqual.type.e3f671.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.016eee.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %a.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %impl.elem0.loc11_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %impl.elem0.loc11_5 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11_5: init %Cpp.long = call %bound_method.loc11_5.3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11_5 // CHECK:STDOUT: %.loc11_5.4: %Cpp.long = converted %b.ref.loc11, %.loc11_5.3 -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.25d32e.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.a2f319.2] // CHECK:STDOUT: %bound_method.loc11_5.4: = bound_method %a.ref.loc11, %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11_8: init %Cpp.long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11_8 @@ -1803,23 +1803,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.4(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem2.loc12: %.883 = impl_witness_access constants.%OrderedWith.impl_witness.576, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.9898ff.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.410 = impl_witness_access constants.%OrderedWith.impl_witness.e41, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.fd6565.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.760220.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.86d25e.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.1 = specific_constant imports.%Core.Greater.9da, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.9898ff.1] -// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long.as.OrderedWith.impl.Greater.type.a1c5d5.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.9898ff.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.1 = specific_constant imports.%Core.Greater.64f, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.fd6565.1] +// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long.as.OrderedWith.impl.Greater.type.e4810a.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.fd6565.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %a.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %impl.elem0.loc12_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %impl.elem0.loc12_5 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12_5: init %Cpp.long = call %bound_method.loc12_5.3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12_5 // CHECK:STDOUT: %.loc12_5.4: %Cpp.long = converted %b.ref.loc12, %.loc12_5.3 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.760220.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.86d25e.2] // CHECK:STDOUT: %bound_method.loc12_5.4: = bound_method %a.ref.loc12, %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12_7: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_7: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_7: = bound_method %b.ref.loc12, %impl.elem0.loc12_7 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12_7: init %Cpp.long = call %bound_method.loc12_7(%b.ref.loc12) // CHECK:STDOUT: %.loc12_7.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12_7 @@ -1827,23 +1827,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.4(%a.ref.loc12, %.loc12_7.2) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.481 = impl_witness_access constants.%OrderedWith.impl_witness.576, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.5299ce.2] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.693 = impl_witness_access constants.%OrderedWith.impl_witness.e41, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.4bd542.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.89e78a.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.098b91.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.1 = specific_constant imports.%Core.Less.c86, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.5299ce.1] -// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long.as.OrderedWith.impl.Less.type.8fda0e.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.5299ce.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.1 = specific_constant imports.%Core.Less.287, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.4bd542.1] +// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long.as.OrderedWith.impl.Less.type.23d302.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.4bd542.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bound.loc13: = bound_method %a.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %impl.elem0.loc13_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13_5: init %Cpp.long = call %bound_method.loc13_5.3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13_5 // CHECK:STDOUT: %.loc13_5.4: %Cpp.long = converted %b.ref.loc13, %.loc13_5.3 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.89e78a.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.098b91.2] // CHECK:STDOUT: %bound_method.loc13_5.4: = bound_method %a.ref.loc13, %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_7: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_7: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_7: = bound_method %b.ref.loc13, %impl.elem0.loc13_7 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13_7: init %Cpp.long = call %bound_method.loc13_7(%b.ref.loc13) // CHECK:STDOUT: %.loc13_7.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13_7 @@ -1851,23 +1851,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.4(%a.ref.loc13, %.loc13_7.2) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem3.loc14: %.753 = impl_witness_access constants.%OrderedWith.impl_witness.576, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.cff = impl_witness_access constants.%OrderedWith.impl_witness.e41, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e67d4e.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.157c2e.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.1 = specific_constant imports.%Core.GreaterOrEquivalent.76e, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.062a19.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.c90ad0.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.1 = specific_constant imports.%Core.GreaterOrEquivalent.786, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fb6308.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.7fca0f.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %a.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %impl.elem0.loc14_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %impl.elem0.loc14_5 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14_5: init %Cpp.long = call %bound_method.loc14_5.3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14_5 // CHECK:STDOUT: %.loc14_5.4: %Cpp.long = converted %b.ref.loc14, %.loc14_5.3 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e67d4e.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.157c2e.2] // CHECK:STDOUT: %bound_method.loc14_5.4: = bound_method %a.ref.loc14, %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14_8: init %Cpp.long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14_8 @@ -1875,23 +1875,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.4(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.14a = impl_witness_access constants.%OrderedWith.impl_witness.576, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.139 = impl_witness_access constants.%OrderedWith.impl_witness.e41, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9548d5.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.de1764.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.1 = specific_constant imports.%Core.LessOrEquivalent.4a6, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.11ca57.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1eddf1.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.1 = specific_constant imports.%Core.LessOrEquivalent.9f4, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.7a4c94.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.58c886.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %a.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %impl.elem0.loc15_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15_5: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %impl.elem0.loc15_5 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc15_5: init %Cpp.long = call %bound_method.loc15_5.3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc15_5 // CHECK:STDOUT: %.loc15_5.4: %Cpp.long = converted %b.ref.loc15, %.loc15_5.3 -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.9548d5.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.de1764.2] // CHECK:STDOUT: %bound_method.loc15_5.4: = bound_method %a.ref.loc15, %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc15_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_8: = bound_method %b.ref.loc15, %impl.elem0.loc15_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc15_8: init %Cpp.long = call %bound_method.loc15_8(%b.ref.loc15) // CHECK:STDOUT: %.loc15_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc15_8 @@ -1899,21 +1899,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.4(%a.ref.loc15, %.loc15_8.2) // CHECK:STDOUT: %a.ref.loc17: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.a03 = impl_witness_access constants.%EqWith.impl_witness.8e5, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.6ed862.2] +// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.5de = impl_witness_access constants.%EqWith.impl_witness.b3f, element0 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.3a4fa9.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.334ae9.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.0c655b.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.EqWith.impl.Equal.type.416d09.1 = specific_constant imports.%Core.Equal.0ad, @Cpp.long.as.EqWith.impl.f13(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.6ed862.1] -// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long.as.EqWith.impl.Equal.type.416d09.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.6ed862.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.1 = specific_constant imports.%Core.Equal.3f1, @Cpp.long.as.EqWith.impl.583(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.3a4fa9.1] +// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long.as.EqWith.impl.Equal.type.febe5e.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.3a4fa9.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.bound.loc17: = bound_method %a.ref.loc17, %Equal.ref.loc17 // CHECK:STDOUT: %impl.elem0.loc17_5.2: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %impl.elem0.loc17_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_5: init %Cpp.long = call %bound_method.loc17_5.3(%int_1.loc17) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc17_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc17_5.4: %Cpp.long = converted %int_1.loc17, %.loc17_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.334ae9.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.Equal.specific_fn.0c655b.2] // CHECK:STDOUT: %bound_method.loc17_5.4: = bound_method %a.ref.loc17, %Cpp.long.as.EqWith.impl.Equal.specific_fn.loc17 // CHECK:STDOUT: %impl.elem0.loc17_8: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %int_1.loc17, %impl.elem0.loc17_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -1923,21 +1923,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.4(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc18: %.9a1 = impl_witness_access constants.%EqWith.impl_witness.8e5, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.f686b3.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.97e = impl_witness_access constants.%EqWith.impl_witness.b3f, element1 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.139b50.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem1.loc18 // CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.5aa006.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.1ba709.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.1 = specific_constant imports.%Core.NotEqual.b1f, @Cpp.long.as.EqWith.impl.f13(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.f686b3.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long.as.EqWith.impl.NotEqual.type.de968c.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.f686b3.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.1 = specific_constant imports.%Core.NotEqual.bac, @Cpp.long.as.EqWith.impl.583(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.139b50.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long.as.EqWith.impl.NotEqual.type.582e5e.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.139b50.1] // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %a.ref.loc18, %NotEqual.ref.loc18 // CHECK:STDOUT: %impl.elem0.loc18_5: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %impl.elem0.loc18_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_5: init %Cpp.long = call %bound_method.loc18_5.3(%int_1.loc18) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc18_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc18_5.4: %Cpp.long = converted %int_1.loc18, %.loc18_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.5aa006.2] +// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.specific_fn.1ba709.2] // CHECK:STDOUT: %bound_method.loc18_5.4: = bound_method %a.ref.loc18, %Cpp.long.as.EqWith.impl.NotEqual.specific_fn.loc18 // CHECK:STDOUT: %impl.elem0.loc18_8: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %int_1.loc18, %impl.elem0.loc18_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -1947,21 +1947,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.4(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem2.loc19: %.5af = impl_witness_access constants.%OrderedWith.impl_witness.52f, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.74a807.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.81e = impl_witness_access constants.%OrderedWith.impl_witness.26e, element2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.afe0c2.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem2.loc19 // CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.b2149b.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.d98231.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.1 = specific_constant imports.%Core.Greater.9da, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.74a807.1] -// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long.as.OrderedWith.impl.Greater.type.3fd1ac.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.74a807.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.1 = specific_constant imports.%Core.Greater.64f, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.afe0c2.1] +// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long.as.OrderedWith.impl.Greater.type.e1a7e9.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.afe0c2.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %a.ref.loc19, %Greater.ref.loc19 // CHECK:STDOUT: %impl.elem0.loc19_5: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %impl.elem0.loc19_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_5: init %Cpp.long = call %bound_method.loc19_5.3(%int_1.loc19) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc19_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc19_5.4: %Cpp.long = converted %int_1.loc19, %.loc19_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.b2149b.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.specific_fn.d98231.2] // CHECK:STDOUT: %bound_method.loc19_5.4: = bound_method %a.ref.loc19, %Cpp.long.as.OrderedWith.impl.Greater.specific_fn.loc19 // CHECK:STDOUT: %impl.elem0.loc19_7: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc19_7: = bound_method %int_1.loc19, %impl.elem0.loc19_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -1971,21 +1971,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.4(%a.ref.loc19, %.loc19_7.2) // CHECK:STDOUT: %a.ref.loc20: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.6b7 = impl_witness_access constants.%OrderedWith.impl_witness.52f, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.0de767.2] +// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.8d3 = impl_witness_access constants.%OrderedWith.impl_witness.26e, element0 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.cc257a.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.b6fc5e.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.92e5d7.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.1 = specific_constant imports.%Core.Less.c86, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.0de767.1] -// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long.as.OrderedWith.impl.Less.type.8ced31.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.0de767.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.1 = specific_constant imports.%Core.Less.287, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.cc257a.1] +// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long.as.OrderedWith.impl.Less.type.25dc38.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.cc257a.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.bound.loc20: = bound_method %a.ref.loc20, %Less.ref.loc20 // CHECK:STDOUT: %impl.elem0.loc20_5.2: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %impl.elem0.loc20_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_5: init %Cpp.long = call %bound_method.loc20_5.3(%int_1.loc20) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc20_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc20_5.4: %Cpp.long = converted %int_1.loc20, %.loc20_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.b6fc5e.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.specific_fn.92e5d7.2] // CHECK:STDOUT: %bound_method.loc20_5.4: = bound_method %a.ref.loc20, %Cpp.long.as.OrderedWith.impl.Less.specific_fn.loc20 // CHECK:STDOUT: %impl.elem0.loc20_7: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc20_7: = bound_method %int_1.loc20, %impl.elem0.loc20_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -1995,21 +1995,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.4(%a.ref.loc20, %.loc20_7.2) // CHECK:STDOUT: %a.ref.loc21: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem3.loc21: %.1f9 = impl_witness_access constants.%OrderedWith.impl_witness.52f, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.a3d = impl_witness_access constants.%OrderedWith.impl_witness.26e, element3 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem3.loc21 // CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.f90679.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.46a5e8.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.1 = specific_constant imports.%Core.GreaterOrEquivalent.76e, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2273d7.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.abd013.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.1 = specific_constant imports.%Core.GreaterOrEquivalent.786, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.fefcb3.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.13ba60.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %a.ref.loc21, %GreaterOrEquivalent.ref.loc21 // CHECK:STDOUT: %impl.elem0.loc21_5: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %impl.elem0.loc21_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_5: init %Cpp.long = call %bound_method.loc21_5.3(%int_1.loc21) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc21_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc21_5.4: %Cpp.long = converted %int_1.loc21, %.loc21_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.f90679.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.46a5e8.2] // CHECK:STDOUT: %bound_method.loc21_5.4: = bound_method %a.ref.loc21, %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 // CHECK:STDOUT: %impl.elem0.loc21_8: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc21_8: = bound_method %int_1.loc21, %impl.elem0.loc21_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -2019,21 +2019,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.4(%a.ref.loc21, %.loc21_8.2) // CHECK:STDOUT: %a.ref.loc22: %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc22: %.76b = impl_witness_access constants.%OrderedWith.impl_witness.52f, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.510 = impl_witness_access constants.%OrderedWith.impl_witness.26e, element1 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.2] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %a.ref.loc22, %impl.elem1.loc22 // CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet.eed] // CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.eed] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.c5c24a.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4c920e.1] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %a.ref.loc22, %specific_fn.loc22 -// CHECK:STDOUT: %.loc22_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.1 = specific_constant imports.%Core.LessOrEquivalent.4a6, @Cpp.long.as.OrderedWith.impl.15a(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.28524d.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.9833d9.1] +// CHECK:STDOUT: %.loc22_5.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.1 = specific_constant imports.%Core.LessOrEquivalent.9f4, @Cpp.long.as.OrderedWith.impl.1c6(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1098b7.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.ef9474.1] // CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %a.ref.loc22, %LessOrEquivalent.ref.loc22 // CHECK:STDOUT: %impl.elem0.loc22_5: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %impl.elem0.loc22_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5: init %Cpp.long = call %bound_method.loc22_5.3(%int_1.loc22) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc22_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc22_5.4: %Cpp.long = converted %int_1.loc22, %.loc22_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.c5c24a.2] +// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4c920e.2] // CHECK:STDOUT: %bound_method.loc22_5.4: = bound_method %a.ref.loc22, %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 // CHECK:STDOUT: %impl.elem0.loc22_8: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %int_1.loc22, %impl.elem0.loc22_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] @@ -2063,165 +2063,165 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5a4: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %EqWith.type.494: type = facet_type <@EqWith, @EqWith(%Cpp.long)> [concrete] // CHECK:STDOUT: %T.57d: %ImplicitAs.type.819 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.1, @T.binding.as_type.as.EqWith.impl.8ff(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.2eedb3.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.2, @T.binding.as_type.as.EqWith.impl.8ff(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.2eedb3.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.1, @T.binding.as_type.as.EqWith.impl.8ff(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.c3a936.1: %T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.2, @T.binding.as_type.as.EqWith.impl.8ff(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.c3a936.2: %T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.949: = impl_witness imports.%EqWith.impl_witness_table.c6d, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.2, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.b65948.1: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.2, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.37228f.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.1, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.b65948.2: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.1, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.37228f.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.57a: %EqWith.type.494 = facet_value %i32, (%EqWith.impl_witness.949) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.593: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.57a) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.048: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.57a) [concrete] -// CHECK:STDOUT: %.566: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.593, %EqWith.facet.57a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.73f7cb.1: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.b65948.2, @T.binding.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.73f7cb.2: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.b65948.1, @T.binding.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2a3875.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.243(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.96a635.1: %T.as_type.as.EqWith.impl.NotEqual.type.2a3875.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2a3875.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.243(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.96a635.2: %T.as_type.as.EqWith.impl.NotEqual.type.2a3875.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f439f4.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.243(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.f81ea9.1: %T.as_type.as.EqWith.impl.Equal.type.f439f4.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f439f4.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.243(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.f81ea9.2: %T.as_type.as.EqWith.impl.Equal.type.f439f4.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc39: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc39) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.ee3: = impl_witness imports.%EqWith.impl_witness_table.213, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.212eb2.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.6f6f00.1: %T.as_type.as.EqWith.impl.Equal.type.212eb2.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.635f4a.1: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.212eb2.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.6f6f00.2: %T.as_type.as.EqWith.impl.Equal.type.212eb2.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.635f4a.2: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.df3: %EqWith.type.494 = facet_value %i32, (%EqWith.impl_witness.ee3) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.655: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.df3) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.313: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.df3) [concrete] +// CHECK:STDOUT: %.465: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.655, %EqWith.facet.df3 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.9c9973.1: = specific_function %T.as_type.as.EqWith.impl.Equal.6f6f00.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.9c9973.2: = specific_function %T.as_type.as.EqWith.impl.Equal.6f6f00.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f0, %ImplicitAs.facet.174 [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert: %i32.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %.4d8: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.048, %EqWith.facet.57a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.91cc57.1: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.37228f.2, @T.binding.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.91cc57.2: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.37228f.1, @T.binding.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.b3a: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.313, %EqWith.facet.df3 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.1cadb2.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.635f4a.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.1cadb2.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.635f4a.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %OrderedWith.type.a39: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9f68cd.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9f68cd.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.1, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.1fe718.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.2, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.1fe718.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4a32de.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4a32de.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.1, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.a71c43.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.2, @T.binding.as_type.as.OrderedWith.impl.891(%T.57d) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.a71c43.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.impl_witness.f9b: = impl_witness imports.%OrderedWith.impl_witness_table.752, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.f24104.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.f24104.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.fa3: %OrderedWith.type.a39 = facet_value %i32, (%OrderedWith.impl_witness.f9b) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.373: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.fa3) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.43c: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.fa3) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.021: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.fa3) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.a29: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.fa3) [concrete] -// CHECK:STDOUT: %.d93: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.021, %OrderedWith.facet.fa3 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.6e99ac.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.2, @T.binding.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.6e99ac.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.1, @T.binding.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.4a1: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.373, %OrderedWith.facet.fa3 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.548b71.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.f24104.2, @T.binding.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.548b71.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.f24104.1, @T.binding.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.7fd: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.a29, %OrderedWith.facet.fa3 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.445813.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.2, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.445813.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.1, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %.8f3: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.43c, %OrderedWith.facet.fa3 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.a789d4.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.2, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.a789d4.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.1, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.801: = impl_witness imports.%EqWith.impl_witness_table.c6d, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.2, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.326379.1: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.2, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.1, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.326379.2: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.1, @T.binding.as_type.as.EqWith.impl.8ff(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.fa2: %EqWith.type.494 = facet_value Core.IntLiteral, (%EqWith.impl_witness.801) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.9e3: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.fa2) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.ede: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.fa2) [concrete] -// CHECK:STDOUT: %.389: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.9e3, %EqWith.facet.fa2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.62ea05.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.326379.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.1: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.326379.2, @T.binding.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.8a46b0.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.62ea05.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.326379.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.2: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.326379.1, @T.binding.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.8a46b0.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.2 [concrete] -// CHECK:STDOUT: %.ec0: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.ede, %EqWith.facet.fa2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.29032e.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.1: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.2, @T.binding.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.082399.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.29032e.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.2: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.1, @T.binding.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.082399.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.2 [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.252: = impl_witness imports.%OrderedWith.impl_witness_table.752, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.binding.as_type.as.OrderedWith.impl.891(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.2bc: %OrderedWith.type.a39 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.252) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.2af: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.2bc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.916: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.2bc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.796: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.2bc) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.e13: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.2bc) [concrete] -// CHECK:STDOUT: %.cfa: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.796, %OrderedWith.facet.2bc [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.8ab0dc.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.2, @T.binding.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.ea09f6.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.8ab0dc.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.1, @T.binding.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.ea09f6.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.2 [concrete] -// CHECK:STDOUT: %.ea7: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.2af, %OrderedWith.facet.2bc [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.a0ee36.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.2, @T.binding.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.d20c63.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.a0ee36.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.1, @T.binding.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.d20c63.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.2 [concrete] -// CHECK:STDOUT: %.8f6: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.e13, %OrderedWith.facet.2bc [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.378e29.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.2, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.212360.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.378e29.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.1, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.212360.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.2 [concrete] -// CHECK:STDOUT: %.2ed: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.916, %OrderedWith.facet.2bc [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.5ef5e5.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.2, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.e9dda0.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.5ef5e5.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.1, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] -// CHECK:STDOUT: %bound_method.e9dda0.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.392459.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.392459.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d4be71.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.df4f5e.1: %T.as_type.as.OrderedWith.impl.Greater.type.d4be71.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.d4be71.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.df4f5e.2: %T.as_type.as.OrderedWith.impl.Greater.type.d4be71.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.881e0b.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.881e0b.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.92ce55.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.d504b0.1: %T.as_type.as.OrderedWith.impl.Less.type.92ce55.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.92ce55.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d5b(%T.57d) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.d504b0.2: %T.as_type.as.OrderedWith.impl.Less.type.92ce55.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.impl_witness.f99: = impl_witness imports.%OrderedWith.impl_witness_table.666, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.11e1b5.1: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.26833a.1: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.11e1b5.2: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.26833a.2: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.bc6: %OrderedWith.type.a39 = facet_value %i32, (%OrderedWith.impl_witness.f99) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.375: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.bc6) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.9be: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.bc6) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.fc7: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.bc6) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.f6d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.bc6) [concrete] +// CHECK:STDOUT: %.d57: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.fc7, %OrderedWith.facet.bc6 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.001a30.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.26833a.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.001a30.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.26833a.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.400: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.375, %OrderedWith.facet.bc6 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.c6ac49.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.11e1b5.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.c6ac49.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.11e1b5.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.3fe: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.f6d, %OrderedWith.facet.bc6 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1344d6.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1344d6.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %.2f8: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.9be, %OrderedWith.facet.bc6 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b047b5.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b047b5.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.80a: = impl_witness imports.%EqWith.impl_witness_table.213, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.5f3ba2.1: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.cd4556.1: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.5f3ba2.2: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.243(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.cd4556.2: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.a5f: %EqWith.type.494 = facet_value Core.IntLiteral, (%EqWith.impl_witness.80a) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.42c: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.a5f) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.000: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long, %EqWith.facet.a5f) [concrete] +// CHECK:STDOUT: %.dc5: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.42c, %EqWith.facet.a5f [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.371af1.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.5f3ba2.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.1: = specific_function %T.as_type.as.EqWith.impl.Equal.5f3ba2.2, @T.as_type.as.EqWith.impl.Equal.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.13fd29.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.371af1.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.5f3ba2.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.2: = specific_function %T.as_type.as.EqWith.impl.Equal.5f3ba2.1, @T.as_type.as.EqWith.impl.Equal.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.13fd29.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.2 [concrete] +// CHECK:STDOUT: %.627: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.000, %EqWith.facet.a5f [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.32c2a1.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.cd4556.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.cd4556.2, @T.as_type.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.034e18.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.32c2a1.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.cd4556.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.cd4556.1, @T.as_type.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.034e18.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.2 [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.71d: = impl_witness imports.%OrderedWith.impl_witness_table.666, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.780c9a.1: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.89db94.1: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.780c9a.2: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.89db94.2: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.d5b(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.e9c: %OrderedWith.type.a39 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.71d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.b9e: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.e9c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.598: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.e9c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.ad1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.e9c) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.eb5: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long, %OrderedWith.facet.e9c) [concrete] +// CHECK:STDOUT: %.ab5: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.ad1, %OrderedWith.facet.e9c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.eab164.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.89db94.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.89db94.2, @T.as_type.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.b3316e.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.eab164.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.89db94.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.89db94.1, @T.as_type.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.b3316e.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.2 [concrete] +// CHECK:STDOUT: %.510: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.b9e, %OrderedWith.facet.e9c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.006be7.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.780c9a.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.780c9a.2, @T.as_type.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.fda4bb.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.006be7.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.780c9a.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.780c9a.1, @T.as_type.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.fda4bb.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.2 [concrete] +// CHECK:STDOUT: %.a0b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.eb5, %OrderedWith.facet.e9c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.f605d4.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.f8c005.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.f605d4.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.f8c005.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.2 [concrete] +// CHECK:STDOUT: %.8dc: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.598, %OrderedWith.facet.e9c [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.4b587c.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.08e701.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.4b587c.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.eed) [concrete] +// CHECK:STDOUT: %bound_method.08e701.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2231,22 +2231,22 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.b8a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b38 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] -// CHECK:STDOUT: %Core.import_ref.534: @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.Equal.type.2 (%T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.Equal.2 (constants.%T.binding.as_type.as.EqWith.impl.Equal.c3a936.1)] -// CHECK:STDOUT: %Core.import_ref.5d5: @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.NotEqual.type.2 (%T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.binding.as_type.as.EqWith.impl.NotEqual.2eedb3.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.c6d = impl_witness_table (%Core.import_ref.534, %Core.import_ref.5d5), @T.binding.as_type.as.EqWith.impl.8ff [concrete] -// CHECK:STDOUT: %Core.NotEqual.a7f: @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.NotEqual.type.1 (%T.binding.as_type.as.EqWith.impl.NotEqual.type.71d714.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.binding.as_type.as.EqWith.impl.NotEqual.2eedb3.2)] -// CHECK:STDOUT: %Core.Equal.784: @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.Equal.type.1 (%T.binding.as_type.as.EqWith.impl.Equal.type.fd2c2f.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.8ff.%T.binding.as_type.as.EqWith.impl.Equal.1 (constants.%T.binding.as_type.as.EqWith.impl.Equal.c3a936.2)] +// CHECK:STDOUT: %Core.import_ref.89f: @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.f439f4.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.f81ea9.1)] +// CHECK:STDOUT: %Core.import_ref.ac0: @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.2a3875.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.96a635.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.213 = impl_witness_table (%Core.import_ref.89f, %Core.import_ref.ac0), @T.as_type.as.EqWith.impl.243 [concrete] +// CHECK:STDOUT: %Core.NotEqual.ffe: @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.2a3875.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.96a635.2)] +// CHECK:STDOUT: %Core.Equal.e00: @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.f439f4.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.243.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.f81ea9.2)] // CHECK:STDOUT: %Core.import_ref.4fa: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.5ad = impl_witness_table (%Core.import_ref.4fa), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.9e8: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Less.type.2 (%T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Less.2 (constants.%T.binding.as_type.as.OrderedWith.impl.Less.a71c43.1)] -// CHECK:STDOUT: %Core.import_ref.973: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4a32de.1)] -// CHECK:STDOUT: %Core.import_ref.155: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Greater.type.2 (%T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.binding.as_type.as.OrderedWith.impl.Greater.1fe718.1)] -// CHECK:STDOUT: %Core.import_ref.f9eb: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9f68cd.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.752 = impl_witness_table (%Core.import_ref.9e8, %Core.import_ref.973, %Core.import_ref.155, %Core.import_ref.f9eb), @T.binding.as_type.as.OrderedWith.impl.891 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.c46: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.058043.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9f68cd.2)] -// CHECK:STDOUT: %Core.Greater.696: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Greater.type.1 (%T.binding.as_type.as.OrderedWith.impl.Greater.type.5284c3.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.binding.as_type.as.OrderedWith.impl.Greater.1fe718.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.947: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.e16008.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4a32de.2)] -// CHECK:STDOUT: %Core.Less.b61: @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Less.type.1 (%T.binding.as_type.as.OrderedWith.impl.Less.type.7f8c78.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.891.%T.binding.as_type.as.OrderedWith.impl.Less.1 (constants.%T.binding.as_type.as.OrderedWith.impl.Less.a71c43.2)] +// CHECK:STDOUT: %Core.import_ref.332: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.92ce55.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.d504b0.1)] +// CHECK:STDOUT: %Core.import_ref.795: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.881e0b.1)] +// CHECK:STDOUT: %Core.import_ref.8be: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.d4be71.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.df4f5e.1)] +// CHECK:STDOUT: %Core.import_ref.5c4: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.392459.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.666 = impl_witness_table (%Core.import_ref.332, %Core.import_ref.795, %Core.import_ref.8be, %Core.import_ref.5c4), @T.as_type.as.OrderedWith.impl.d5b [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.1c9: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.11d880.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.392459.2)] +// CHECK:STDOUT: %Core.Greater.a1a: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.d4be71.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.df4f5e.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.461: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43ddde.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.881e0b.2)] +// CHECK:STDOUT: %Core.Less.80c: @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.92ce55.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.d5b.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.d504b0.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongRightSide() { @@ -2268,208 +2268,208 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: %Cpp.long = value_binding a, %.loc9_21.2 // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc10: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10_5: %.566 = impl_witness_access constants.%EqWith.impl_witness.949, element0 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.b65948.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.465 = impl_witness_access constants.%EqWith.impl_witness.ee3, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6f6f00.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %b.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.binding.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.73f7cb.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.9c9973.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %b.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.1 = specific_constant imports.%Core.Equal.784, @T.binding.as_type.as.EqWith.impl.8ff(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.b65948.1] -// CHECK:STDOUT: %Equal.ref.loc10: %T.binding.as_type.as.EqWith.impl.Equal.type.d5eb8f.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.b65948.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.binding.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.73f7cb.2] -// CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_3: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.212eb2.1 = specific_constant imports.%Core.Equal.e00, @T.as_type.as.EqWith.impl.243(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6f6f00.1] +// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.212eb2.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6f6f00.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.9c9973.2] +// CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10 +// CHECK:STDOUT: %impl.elem0.loc10_3: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_3: = bound_method %b.ref.loc10, %impl.elem0.loc10_3 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long = call %bound_method.loc10_3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10 // CHECK:STDOUT: %.loc10_3.2: %Cpp.long = converted %b.ref.loc10, %.loc10_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc11: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc11: %.4d8 = impl_witness_access constants.%EqWith.impl_witness.949, element1 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.37228f.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.b3a = impl_witness_access constants.%EqWith.impl_witness.ee3, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.635f4a.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %b.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.binding.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.91cc57.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.1cadb2.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %b.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.1 = specific_constant imports.%Core.NotEqual.a7f, @T.binding.as_type.as.EqWith.impl.8ff(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.37228f.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %T.binding.as_type.as.EqWith.impl.NotEqual.type.0a8f8f.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.37228f.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.binding.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.91cc57.2] -// CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 -// CHECK:STDOUT: %impl.elem0.loc11: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.1 = specific_constant imports.%Core.NotEqual.ffe, @T.as_type.as.EqWith.impl.243(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.635f4a.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.eb206f.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.635f4a.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.1cadb2.2] +// CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 +// CHECK:STDOUT: %impl.elem0.loc11: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_3: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long = call %bound_method.loc11_3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11 // CHECK:STDOUT: %.loc11_3.2: %Cpp.long = converted %b.ref.loc11, %.loc11_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc12: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc12: %.d93 = impl_witness_access constants.%OrderedWith.impl_witness.f9b, element2 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.d57 = impl_witness_access constants.%OrderedWith.impl_witness.f99, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.26833a.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %b.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.binding.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.6e99ac.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.001a30.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %b.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.1 = specific_constant imports.%Core.Greater.696, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.1] -// CHECK:STDOUT: %Greater.ref.loc12: %T.binding.as_type.as.OrderedWith.impl.Greater.type.c0ea4d.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.5cc4da.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.binding.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.6e99ac.2] -// CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 -// CHECK:STDOUT: %impl.elem0.loc12: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.1 = specific_constant imports.%Core.Greater.a1a, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.26833a.1] +// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.ad12e9.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.26833a.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.001a30.2] +// CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 +// CHECK:STDOUT: %impl.elem0.loc12: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_3: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long = call %bound_method.loc12_3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12 // CHECK:STDOUT: %.loc12_3.2: %Cpp.long = converted %b.ref.loc12, %.loc12_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc13: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc13_5: %.4a1 = impl_witness_access constants.%OrderedWith.impl_witness.f9b, element0 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.f24104.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.400 = impl_witness_access constants.%OrderedWith.impl_witness.f99, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.11e1b5.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %b.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.binding.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.548b71.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.c6ac49.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %b.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.1 = specific_constant imports.%Core.Less.b61, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.f24104.1] -// CHECK:STDOUT: %Less.ref.loc13: %T.binding.as_type.as.OrderedWith.impl.Less.type.c1d567.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.f24104.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.binding.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.548b71.2] -// CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_3: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.1 = specific_constant imports.%Core.Less.80c, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.11e1b5.1] +// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.e61b26.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.11e1b5.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.c6ac49.2] +// CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 +// CHECK:STDOUT: %impl.elem0.loc13_3: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b.ref.loc13, %impl.elem0.loc13_3 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long = call %bound_method.loc13_3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13 // CHECK:STDOUT: %.loc13_3.2: %Cpp.long = converted %b.ref.loc13, %.loc13_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc14: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc14: %.7fd = impl_witness_access constants.%OrderedWith.impl_witness.f9b, element3 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.3fe = impl_witness_access constants.%OrderedWith.impl_witness.f99, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %b.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.445813.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1344d6.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %b.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.1 = specific_constant imports.%Core.GreaterOrEquivalent.c46, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9e0984.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6ad500.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.445813.2] -// CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 -// CHECK:STDOUT: %impl.elem0.loc14: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.1 = specific_constant imports.%Core.GreaterOrEquivalent.1c9, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2146ac.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c5cfc4.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.1344d6.2] +// CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 +// CHECK:STDOUT: %impl.elem0.loc14: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long = call %bound_method.loc14_3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14 // CHECK:STDOUT: %.loc14_3.2: %Cpp.long = converted %b.ref.loc14, %.loc14_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) // CHECK:STDOUT: %b.ref.loc15: %i32 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc15: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc15: %.8f3 = impl_witness_access constants.%OrderedWith.impl_witness.f9b, element1 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.2f8 = impl_witness_access constants.%OrderedWith.impl_witness.f99, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %b.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.a789d4.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b047b5.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %b.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.1 = specific_constant imports.%Core.LessOrEquivalent.947, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1492cb.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.48db04.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.a789d4.2] -// CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 -// CHECK:STDOUT: %impl.elem0.loc15: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.1 = specific_constant imports.%Core.LessOrEquivalent.461, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.859fa0.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.69bd3d.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.174) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b047b5.2] +// CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 +// CHECK:STDOUT: %impl.elem0.loc15: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_3: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long = call %bound_method.loc15_3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_3.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc15 // CHECK:STDOUT: %.loc15_3.2: %Cpp.long = converted %b.ref.loc15, %.loc15_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc17: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc17_5: %.389 = impl_witness_access constants.%EqWith.impl_witness.801, element0 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.326379.2] -// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.bound.62ea05.1] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.binding.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.1] -// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.8a46b0.1] -// CHECK:STDOUT: %.loc17_5: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.1 = specific_constant imports.%Core.Equal.784, @T.binding.as_type.as.EqWith.impl.8ff(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.326379.1] -// CHECK:STDOUT: %Equal.ref.loc17: %T.binding.as_type.as.EqWith.impl.Equal.type.85dd3c.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.326379.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.bound.62ea05.2] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.binding.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.ad9d43.2] -// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.8a46b0.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.dc5 = impl_witness_access constants.%EqWith.impl_witness.80a, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.5f3ba2.2] +// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.371af1.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.1] +// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.13fd29.1] +// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.1 = specific_constant imports.%Core.Equal.e00, @T.as_type.as.EqWith.impl.243(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.5f3ba2.1] +// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.2b9ebd.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.5f3ba2.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.371af1.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.fe3673.2] +// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.13fd29.2] // CHECK:STDOUT: %impl.elem0.loc17_3: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc17_3: = bound_method %int_1.loc17, %impl.elem0.loc17_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc17_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc17_3.2: %Cpp.long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc18: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc18: %.ec0 = impl_witness_access constants.%EqWith.impl_witness.801, element1 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.2] -// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bound.29032e.1] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.binding.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.1] -// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.082399.1] -// CHECK:STDOUT: %.loc18_5: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.1 = specific_constant imports.%Core.NotEqual.a7f, @T.binding.as_type.as.EqWith.impl.8ff(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %T.binding.as_type.as.EqWith.impl.NotEqual.type.bb8d74.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.ffd0ee.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bound.29032e.2] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.binding.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.ceecb6.2] -// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.082399.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.627 = impl_witness_access constants.%EqWith.impl_witness.80a, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.cd4556.2] +// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.32c2a1.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.1] +// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.034e18.1] +// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.1 = specific_constant imports.%Core.NotEqual.ffe, @T.as_type.as.EqWith.impl.243(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.cd4556.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.9f653c.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.cd4556.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.32c2a1.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.5a7ce8.2] +// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.034e18.2] // CHECK:STDOUT: %impl.elem0.loc18: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc18_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc18_3.2: %Cpp.long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc19: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc19: %.cfa = impl_witness_access constants.%OrderedWith.impl_witness.252, element2 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.2] -// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.bound.8ab0dc.1] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.binding.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.1] -// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.ea09f6.1] -// CHECK:STDOUT: %.loc19_5: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.1 = specific_constant imports.%Core.Greater.696, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.1] -// CHECK:STDOUT: %Greater.ref.loc19: %T.binding.as_type.as.OrderedWith.impl.Greater.type.4ddc57.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.4a0e77.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.bound.8ab0dc.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.binding.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.87e25a.2] -// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.ea09f6.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.ab5 = impl_witness_access constants.%OrderedWith.impl_witness.71d, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.89db94.2] +// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.eab164.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.1] +// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.b3316e.1] +// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.1 = specific_constant imports.%Core.Greater.a1a, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.89db94.1] +// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.b828c1.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.89db94.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.eab164.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.d39b8b.2] +// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.b3316e.2] // CHECK:STDOUT: %impl.elem0.loc19: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc19_3: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc19_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc19_3.2: %Cpp.long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc20: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc20_5: %.ea7 = impl_witness_access constants.%OrderedWith.impl_witness.252, element0 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.2] -// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.bound.a0ee36.1] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.binding.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.1] -// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.d20c63.1] -// CHECK:STDOUT: %.loc20_5: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.1 = specific_constant imports.%Core.Less.b61, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.1] -// CHECK:STDOUT: %Less.ref.loc20: %T.binding.as_type.as.OrderedWith.impl.Less.type.285b47.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.11dfa8.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.bound.a0ee36.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.binding.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.47804e.2] -// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.d20c63.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.510 = impl_witness_access constants.%OrderedWith.impl_witness.71d, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.780c9a.2] +// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.006be7.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.1] +// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.fda4bb.1] +// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.1 = specific_constant imports.%Core.Less.80c, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.780c9a.1] +// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.4c5e47.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.780c9a.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.006be7.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.345a6a.2] +// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.fda4bb.2] // CHECK:STDOUT: %impl.elem0.loc20_3: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc20_3: = bound_method %int_1.loc20, %impl.elem0.loc20_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc20_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc20_3.2: %Cpp.long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc21: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc21: %.8f6 = impl_witness_access constants.%OrderedWith.impl_witness.252, element3 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.2] -// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.378e29.1] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.1] -// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.212360.1] -// CHECK:STDOUT: %.loc21_5: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.1 = specific_constant imports.%Core.GreaterOrEquivalent.c46, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.9cc1f0.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.8659c0.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.378e29.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.3899ef.2] -// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.212360.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.a0b = impl_witness_access constants.%OrderedWith.impl_witness.71d, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.2] +// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.f605d4.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.1] +// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.f8c005.1] +// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.1 = specific_constant imports.%Core.GreaterOrEquivalent.1c9, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.53fbc2.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.c1efc3.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.f605d4.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.26ce16.2] +// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.f8c005.2] // CHECK:STDOUT: %impl.elem0.loc21: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc21_3: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc21_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc21_3.2: %Cpp.long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc22: %Cpp.long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc22: %.2ed = impl_witness_access constants.%OrderedWith.impl_witness.252, element1 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.2] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.5ef5e5.1] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.1] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.e9dda0.1] -// CHECK:STDOUT: %.loc22_5: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.1 = specific_constant imports.%Core.LessOrEquivalent.947, @T.binding.as_type.as.OrderedWith.impl.891(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.8a3347.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.70a674.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.5ef5e5.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.925a78.2] -// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.e9dda0.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.8dc = impl_witness_access constants.%OrderedWith.impl_witness.71d, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.2] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.4b587c.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.1] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.08e701.1] +// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.1 = specific_constant imports.%Core.LessOrEquivalent.461, @T.as_type.as.OrderedWith.impl.d5b(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.89841d.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e90faf.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.4b587c.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.eed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.f1965f.2] +// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.08e701.2] // CHECK:STDOUT: %impl.elem0.loc22: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.cc8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc22_3.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc22_3.2: %Cpp.long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2693,8 +2693,8 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %ImplicitAs.type.819: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d: type = fn_type @T.binding.as_type.as.ImplicitAs.impl.Convert, @T.binding.as_type.as.ImplicitAs.impl(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.ImplicitAs.impl.Convert.19b: %T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.e0a: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.035) [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.3a8: %T.as_type.as.ImplicitAs.impl.Convert.type.e0a = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.2ce: = impl_witness imports.%ImplicitAs.impl_witness_table.903 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.eed: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.2ce) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.6e8: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.eed) [concrete] @@ -2705,159 +2705,159 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5a4: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.bef: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long)> [concrete] // CHECK:STDOUT: %U.57d: %ImplicitAs.type.819 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.1: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.2: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.1: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.2: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.e75: = impl_witness imports.%Copy.impl_witness_table.572 [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long, (%Copy.impl_witness.e75) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.bd4: = impl_witness imports.%ImplicitAs.impl_witness_table.f1e, @T.binding.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.3fe: %ImplicitAs.type.819 = facet_value %Cpp.long, (%ImplicitAs.impl_witness.bd4) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.fb1: = impl_witness imports.%AddAssignWith.impl_witness_table.07a, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.8b7759.1: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.8b7759.2: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.bef = facet_value %Cpp.long, (%AddAssignWith.impl_witness.fb1) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.045: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.045: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.045, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.df00b6.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.8b7759.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.df00b6.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.8b7759.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.495: = impl_witness imports.%ImplicitAs.impl_witness_table.fe1, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.d75: %ImplicitAs.type.819 = facet_value %Cpp.long, (%ImplicitAs.impl_witness.495) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.8e3: = impl_witness imports.%AddAssignWith.impl_witness_table.59e, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.1: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.2: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.bef = facet_value %Cpp.long, (%AddAssignWith.impl_witness.8e3) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.177: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.051: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.177, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.949874.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.949874.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %SubAssignWith.type.b12: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.c39240.1: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.c39240.2: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.631: = impl_witness imports.%SubAssignWith.impl_witness_table.f4b, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.31eaa0.1: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.31eaa0.2: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.b12 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.631) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.887: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long, %SubAssignWith.facet) [concrete] -// CHECK:STDOUT: %.052: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.887, %SubAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.864a67.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.31eaa0.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.864a67.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.31eaa0.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.4445c4.1: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.4445c4.2: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.76e: = impl_witness imports.%SubAssignWith.impl_witness_table.714, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.18b17c.1: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.18b17c.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.b12 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.76e) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.5bb: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long, %SubAssignWith.facet) [concrete] +// CHECK:STDOUT: %.3ea: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.5bb, %SubAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.451737.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.18b17c.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.451737.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.18b17c.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %MulAssignWith.type.59a: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.421374.1: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.421374.2: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.0b4: = impl_witness imports.%MulAssignWith.impl_witness_table.8cc, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.b067dc.1: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.b067dc.2: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.59a = facet_value %Cpp.long, (%MulAssignWith.impl_witness.0b4) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.ddd: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long, %MulAssignWith.facet) [concrete] -// CHECK:STDOUT: %.8d7: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.ddd, %MulAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.a37438.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.b067dc.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.a37438.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.b067dc.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6a090a.1: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6a090a.2: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.a61: = impl_witness imports.%MulAssignWith.impl_witness_table.71c, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4074b4.1: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.4074b4.2: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.59a = facet_value %Cpp.long, (%MulAssignWith.impl_witness.a61) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.ca0: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long, %MulAssignWith.facet) [concrete] +// CHECK:STDOUT: %.c10: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.ca0, %MulAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.8626d1.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.4074b4.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.8626d1.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.4074b4.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %DivAssignWith.type.e6d: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.6227df.1: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.6227df.2: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.b4e: = impl_witness imports.%DivAssignWith.impl_witness_table.6f7, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b85335.1: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.b85335.2: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.e6d = facet_value %Cpp.long, (%DivAssignWith.impl_witness.b4e) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.829: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long, %DivAssignWith.facet) [concrete] -// CHECK:STDOUT: %.1d5: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.829, %DivAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.19b8da.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.b85335.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.19b8da.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.b85335.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.baaf86.1: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.baaf86.2: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.4cd: = impl_witness imports.%DivAssignWith.impl_witness_table.483, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.d4ba73.1: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.d4ba73.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.e6d = facet_value %Cpp.long, (%DivAssignWith.impl_witness.4cd) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.70a: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long, %DivAssignWith.facet) [concrete] +// CHECK:STDOUT: %.c93: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.70a, %DivAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.c8e917.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.d4ba73.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.c8e917.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.d4ba73.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %ModAssignWith.type.2a3: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.666e79.1: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.666e79.2: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.faa: = impl_witness imports.%ModAssignWith.impl_witness_table.a2a, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.da4005.1: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.da4005.2: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.2a3 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.faa) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.c4a: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long, %ModAssignWith.facet) [concrete] -// CHECK:STDOUT: %.474: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.c4a, %ModAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.51594a.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.da4005.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.51594a.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.da4005.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.206fcc.1: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.206fcc.2: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.8de: = impl_witness imports.%ModAssignWith.impl_witness_table.1fd, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.02f8e5.1: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.02f8e5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.2a3 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.8de) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.405: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long, %ModAssignWith.facet) [concrete] +// CHECK:STDOUT: %.1d7: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.405, %ModAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.7a7fb3.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.02f8e5.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.7a7fb3.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.02f8e5.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.efd: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.d99897.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.d99897.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.a49: = impl_witness imports.%BitAndAssignWith.impl_witness_table.cc9, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.500716.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.500716.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.efd = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.a49) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.e39: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long, %BitAndAssignWith.facet) [concrete] -// CHECK:STDOUT: %.f3c: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.e39, %BitAndAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.1245aa.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.500716.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.1245aa.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.500716.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.e4e: = impl_witness imports.%BitAndAssignWith.impl_witness_table.ac5, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.efd = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.e4e) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.249: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long, %BitAndAssignWith.facet) [concrete] +// CHECK:STDOUT: %.4c7: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.249, %BitAndAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.503d46.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.503d46.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.b27: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.ab4: = impl_witness imports.%BitOrAssignWith.impl_witness_table.54c, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.b27 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.ab4) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.823: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long, %BitOrAssignWith.facet) [concrete] -// CHECK:STDOUT: %.2c9: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.823, %BitOrAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.b7967f.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.b7967f.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.2ac: = impl_witness imports.%BitOrAssignWith.impl_witness_table.d80, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.b27 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.2ac) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.1ce: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long, %BitOrAssignWith.facet) [concrete] +// CHECK:STDOUT: %.7e5: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.1ce, %BitOrAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.2952dc.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.2952dc.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.431: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.4d7: = impl_witness imports.%BitXorAssignWith.impl_witness_table.a39, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.431 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.4d7) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.820: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long, %BitXorAssignWith.facet) [concrete] -// CHECK:STDOUT: %.504: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.820, %BitXorAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.04506a.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.04506a.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.8b2: = impl_witness imports.%BitXorAssignWith.impl_witness_table.fe4, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.431 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.8b2) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.6f3: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long, %BitXorAssignWith.facet) [concrete] +// CHECK:STDOUT: %.754: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.6f3, %BitXorAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.0562d9.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.0562d9.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.bed: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.550: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.74d, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.bed = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.550) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.d0a: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long, %LeftShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.20f: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.d0a, %LeftShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.0946f9.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.0946f9.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.731: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.c76, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.bed = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.731) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.66c: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long, %LeftShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.227: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.66c, %LeftShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.51b64e.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.51b64e.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.222: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.328772.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.328772.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.df5: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.b55, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.222 = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.df5) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.6ca: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long, %RightShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.19a: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.6ca, %RightShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.1ec453.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.3fe) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.1ec453.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.3fe) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.fa6: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.2d4, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.222 = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.fa6) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.ea8: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long, %RightShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.e73: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.ea8, %RightShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c601.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.d75) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c601.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.d75) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.long.as.Copy.impl.Op.type: type = fn_type @Cpp.long.as.Copy.impl.Op [concrete] @@ -2869,42 +2869,42 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: .long = constants.%Cpp.long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.1c6: @T.binding.as_type.as.ImplicitAs.impl.%T.binding.as_type.as.ImplicitAs.impl.Convert.type (%T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.binding.as_type.as.ImplicitAs.impl.%T.binding.as_type.as.ImplicitAs.impl.Convert (constants.%T.binding.as_type.as.ImplicitAs.impl.Convert.19b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.f1e = impl_witness_table (%Core.import_ref.1c6), @T.binding.as_type.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.2a3: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.e0a) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.3a8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fe1 = impl_witness_table (%Core.import_ref.2a3), @T.as_type.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.import_ref.b8a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] -// CHECK:STDOUT: %Core.import_ref.d0e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.07a = impl_witness_table (%Core.import_ref.d0e), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f81: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.2)] +// CHECK:STDOUT: %Core.import_ref.c07: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.59e = impl_witness_table (%Core.import_ref.c07), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8bb: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.2)] // CHECK:STDOUT: %Core.import_ref.915: %Cpp.long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.572 = impl_witness_table (%Core.import_ref.915), @Cpp.long.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.bcb: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.c39240.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.f4b = impl_witness_table (%Core.import_ref.bcb), @Cpp.long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.739: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.c39240.2)] -// CHECK:STDOUT: %Core.import_ref.c5b: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.421374.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.8cc = impl_witness_table (%Core.import_ref.c5b), @Cpp.long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3b8: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.421374.2)] -// CHECK:STDOUT: %Core.import_ref.84d: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.6227df.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.84d), @Cpp.long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f47: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.6227df.2)] -// CHECK:STDOUT: %Core.import_ref.e98: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.666e79.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.a2a = impl_witness_table (%Core.import_ref.e98), @Cpp.long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.b37: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.666e79.2)] -// CHECK:STDOUT: %Core.import_ref.325: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.d99897.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.cc9 = impl_witness_table (%Core.import_ref.325), @Cpp.long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.fe8: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.d99897.2)] -// CHECK:STDOUT: %Core.import_ref.01a: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.54c = impl_witness_table (%Core.import_ref.01a), @Cpp.long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.5c2: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.2)] -// CHECK:STDOUT: %Core.import_ref.c8f: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.a39 = impl_witness_table (%Core.import_ref.c8f), @Cpp.long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.caf: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.2)] -// CHECK:STDOUT: %Core.import_ref.bcc: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.74d = impl_witness_table (%Core.import_ref.bcc), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.030: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.2)] -// CHECK:STDOUT: %Core.import_ref.5f5: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.328772.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.b55 = impl_witness_table (%Core.import_ref.5f5), @Cpp.long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3b5: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.328772.2)] +// CHECK:STDOUT: %Core.import_ref.1a6: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.4445c4.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.714 = impl_witness_table (%Core.import_ref.1a6), @Cpp.long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.889: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.4445c4.2)] +// CHECK:STDOUT: %Core.import_ref.ab5: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.6a090a.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.71c = impl_witness_table (%Core.import_ref.ab5), @Cpp.long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c34: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.6a090a.2)] +// CHECK:STDOUT: %Core.import_ref.585: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.baaf86.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.483 = impl_witness_table (%Core.import_ref.585), @Cpp.long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.cd4: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.baaf86.2)] +// CHECK:STDOUT: %Core.import_ref.1ef: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.206fcc.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.1fd = impl_witness_table (%Core.import_ref.1ef), @Cpp.long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.0d4c: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.206fcc.2)] +// CHECK:STDOUT: %Core.import_ref.045: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.ac5 = impl_witness_table (%Core.import_ref.045), @Cpp.long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.984: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.2)] +// CHECK:STDOUT: %Core.import_ref.5e2: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.d80 = impl_witness_table (%Core.import_ref.5e2), @Cpp.long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7ac: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.2)] +// CHECK:STDOUT: %Core.import_ref.261: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.fe4 = impl_witness_table (%Core.import_ref.261), @Cpp.long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d36: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.2)] +// CHECK:STDOUT: %Core.import_ref.8d3: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.c76 = impl_witness_table (%Core.import_ref.8d3), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.f28: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.2)] +// CHECK:STDOUT: %Core.import_ref.559: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.2d4 = impl_witness_table (%Core.import_ref.559), @Cpp.long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c63: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentHomogeneousLong() { @@ -2943,152 +2943,152 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b: ref %Cpp.long = ref_binding b, %b.var // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11: %.045 = impl_witness_access constants.%AddAssignWith.impl_witness.fb1, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.8b7759.2] +// CHECK:STDOUT: %impl.elem0.loc11: %.051 = impl_witness_access constants.%AddAssignWith.impl_witness.8e3, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.df00b6.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.949874.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 // CHECK:STDOUT: %.loc11_8: %Cpp.long = acquire_value %b.ref.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.1 = specific_constant imports.%Core.Op.f81, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.8b7759.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.AddAssignWith.impl.Op.type.defb93.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.8b7759.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.1 = specific_constant imports.%Core.Op.8bb, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.AddAssignWith.impl.Op.type.df4de2.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.e6e9d1.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.df00b6.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.949874.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12: %.052 = impl_witness_access constants.%SubAssignWith.impl_witness.631, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.31eaa0.2] +// CHECK:STDOUT: %impl.elem0.loc12: %.3ea = impl_witness_access constants.%SubAssignWith.impl_witness.76e, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.18b17c.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.864a67.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.451737.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 // CHECK:STDOUT: %.loc12_8: %Cpp.long = acquire_value %b.ref.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.1 = specific_constant imports.%Core.Op.739, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.31eaa0.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.SubAssignWith.impl.Op.type.7e399e.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.31eaa0.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.1 = specific_constant imports.%Core.Op.889, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.18b17c.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cf5c.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.18b17c.1] // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.864a67.2] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.451737.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long.as.SubAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.8d7 = impl_witness_access constants.%MulAssignWith.impl_witness.0b4, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.b067dc.2] +// CHECK:STDOUT: %impl.elem0.loc13: %.c10 = impl_witness_access constants.%MulAssignWith.impl_witness.a61, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.4074b4.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.a37438.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.8626d1.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 // CHECK:STDOUT: %.loc13_8: %Cpp.long = acquire_value %b.ref.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.1 = specific_constant imports.%Core.Op.3b8, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.b067dc.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.MulAssignWith.impl.Op.type.c3673e.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.b067dc.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.1 = specific_constant imports.%Core.Op.c34, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.4074b4.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.MulAssignWith.impl.Op.type.de7124.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.4074b4.1] // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.a37438.2] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.8626d1.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long.as.MulAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14: %.1d5 = impl_witness_access constants.%DivAssignWith.impl_witness.b4e, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.b85335.2] +// CHECK:STDOUT: %impl.elem0.loc14: %.c93 = impl_witness_access constants.%DivAssignWith.impl_witness.4cd, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.d4ba73.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.19b8da.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.c8e917.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 // CHECK:STDOUT: %.loc14_8: %Cpp.long = acquire_value %b.ref.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.1 = specific_constant imports.%Core.Op.f47, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.b85335.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.DivAssignWith.impl.Op.type.97cfb4.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.b85335.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.1 = specific_constant imports.%Core.Op.cd4, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.d4ba73.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.DivAssignWith.impl.Op.type.a1b2e9.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.d4ba73.1] // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.19b8da.2] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.c8e917.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long.as.DivAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8) // CHECK:STDOUT: %a.ref.loc15: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc15: %.474 = impl_witness_access constants.%ModAssignWith.impl_witness.faa, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.da4005.2] +// CHECK:STDOUT: %impl.elem0.loc15: %.1d7 = impl_witness_access constants.%ModAssignWith.impl_witness.8de, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.02f8e5.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem0.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.51594a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.7a7fb3.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 // CHECK:STDOUT: %.loc15_8: %Cpp.long = acquire_value %b.ref.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.1 = specific_constant imports.%Core.Op.b37, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.da4005.1] -// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long.as.ModAssignWith.impl.Op.type.24a130.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.da4005.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.1 = specific_constant imports.%Core.Op.0d4c, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.02f8e5.1] +// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long.as.ModAssignWith.impl.Op.type.c9cf10.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.02f8e5.1] // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc15, %Op.ref.loc15 -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.51594a.2] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.7a7fb3.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long.as.ModAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17: %.f3c = impl_witness_access constants.%BitAndAssignWith.impl_witness.a49, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.500716.2] +// CHECK:STDOUT: %impl.elem0.loc17: %.4c7 = impl_witness_access constants.%BitAndAssignWith.impl_witness.e4e, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.1245aa.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.503d46.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 // CHECK:STDOUT: %.loc17_8: %Cpp.long = acquire_value %b.ref.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.1 = specific_constant imports.%Core.Op.fe8, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.500716.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitAndAssignWith.impl.Op.type.bdaab3.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.500716.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.1 = specific_constant imports.%Core.Op.984, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitAndAssignWith.impl.Op.type.afec48.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.2d36ff.1] // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.1245aa.2] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.503d46.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18: %.2c9 = impl_witness_access constants.%BitOrAssignWith.impl_witness.ab4, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.7e5 = impl_witness_access constants.%BitOrAssignWith.impl_witness.2ac, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.b7967f.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.2952dc.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 // CHECK:STDOUT: %.loc18_8: %Cpp.long = acquire_value %b.ref.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.1 = specific_constant imports.%Core.Op.5c2, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a2b279.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.9b8237.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.1 = specific_constant imports.%Core.Op.7ac, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitOrAssignWith.impl.Op.type.a907f1.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.35a7b6.1] // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.b7967f.2] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.2952dc.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19: %.504 = impl_witness_access constants.%BitXorAssignWith.impl_witness.4d7, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.754 = impl_witness_access constants.%BitXorAssignWith.impl_witness.8b2, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.04506a.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.0562d9.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 // CHECK:STDOUT: %.loc19_8: %Cpp.long = acquire_value %b.ref.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.1 = specific_constant imports.%Core.Op.caf, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6f67bc.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.d7e378.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.1 = specific_constant imports.%Core.Op.d36, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.BitXorAssignWith.impl.Op.type.f8190f.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.fe5efd.1] // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.04506a.2] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.0562d9.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_8) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20: %.20f = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.550, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.2] +// CHECK:STDOUT: %impl.elem0.loc20: %.227 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.731, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.0946f9.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.51b64e.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 // CHECK:STDOUT: %.loc20_9: %Cpp.long = acquire_value %b.ref.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.1 = specific_constant imports.%Core.Op.030, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.e1513f.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.216e26.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.1 = specific_constant imports.%Core.Op.f28, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.9e13fd.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.580c5b.1] // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.0946f9.2] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.51b64e.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9) // CHECK:STDOUT: %a.ref.loc21: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc21: ref %Cpp.long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc21: %.19a = impl_witness_access constants.%RightShiftAssignWith.impl_witness.df5, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.e73 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.fa6, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem0.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.bd4) [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.3fe] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.1ec453.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.819 = facet_value constants.%Cpp.long, (constants.%ImplicitAs.impl_witness.495) [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.819 = converted constants.%Cpp.long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.d75] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c601.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 // CHECK:STDOUT: %.loc21_9: %Cpp.long = acquire_value %b.ref.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.1 = specific_constant imports.%Core.Op.3b5, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.1] -// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.095737.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.860e6c.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.1 = specific_constant imports.%Core.Op.c63, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.1] +// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.2a9012.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.6ebbd9.1] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc21, %Op.ref.loc21 -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.3fe) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.1ec453.2] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.d75) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c601.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_9) // CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.651ba6.2 @@ -3126,161 +3126,161 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5a4: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.794: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] // CHECK:STDOUT: %U.57d: %ImplicitAs.type.819 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.1: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.2: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.ca1: = impl_witness imports.%AddAssignWith.impl_witness_table.07a, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d19046.1: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d19046.2: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.794 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.ca1) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.6a4: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.3d2: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.6a4, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d19046.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.1: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.2: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ImplicitAs.impl_witness.0fc39: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc39) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.fe1: = impl_witness imports.%AddAssignWith.impl_witness_table.59e, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.794 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.fe1) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.45c: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.847: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.45c, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f0, %ImplicitAs.facet.174 [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert: %i32.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d19046.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %SubAssignWith.type.ab0: type = facet_type <@SubAssignWith, @SubAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.c39240.1: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.c39240.2: %Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.200: = impl_witness imports.%SubAssignWith.impl_witness_table.f4b, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.22e054.1: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.22e054.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.ab0 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.200) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.463: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i32, %SubAssignWith.facet) [concrete] -// CHECK:STDOUT: %.432: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.463, %SubAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.dd31df.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.22e054.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.dd31df.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.22e054.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.4445c4.1: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.4445c4.2: %Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.06c: = impl_witness imports.%SubAssignWith.impl_witness_table.714, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.1: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.2, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.ce830d.1: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.2: type = fn_type @Cpp.long.as.SubAssignWith.impl.Op.1, @Cpp.long.as.SubAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.ce830d.2: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.ab0 = facet_value %Cpp.long, (%SubAssignWith.impl_witness.06c) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.b9c: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i32, %SubAssignWith.facet) [concrete] +// CHECK:STDOUT: %.0c9: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.b9c, %SubAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.d08c13.1: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.ce830d.2, @Cpp.long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn.d08c13.2: = specific_function %Cpp.long.as.SubAssignWith.impl.Op.ce830d.1, @Cpp.long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %MulAssignWith.type.743: type = facet_type <@MulAssignWith, @MulAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.421374.1: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.421374.2: %Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.c16: = impl_witness imports.%MulAssignWith.impl_witness_table.8cc, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.1: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.2: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.743 = facet_value %Cpp.long, (%MulAssignWith.impl_witness.c16) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.7fa: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i32, %MulAssignWith.facet) [concrete] -// CHECK:STDOUT: %.fbe: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.7fa, %MulAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.c127b2.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.c127b2.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6a090a.1: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.6a090a.2: %Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.eb4: = impl_witness imports.%MulAssignWith.impl_witness_table.71c, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.1: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.2, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.848c12.1: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.2: type = fn_type @Cpp.long.as.MulAssignWith.impl.Op.1, @Cpp.long.as.MulAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.848c12.2: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.743 = facet_value %Cpp.long, (%MulAssignWith.impl_witness.eb4) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.3fe: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i32, %MulAssignWith.facet) [concrete] +// CHECK:STDOUT: %.a57: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.3fe, %MulAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.646b46.1: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.848c12.2, @Cpp.long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn.646b46.2: = specific_function %Cpp.long.as.MulAssignWith.impl.Op.848c12.1, @Cpp.long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %DivAssignWith.type.786: type = facet_type <@DivAssignWith, @DivAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.6227df.1: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.6227df.2: %Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.b4b: = impl_witness imports.%DivAssignWith.impl_witness_table.6f7, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.2f8f46.1: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.2f8f46.2: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.786 = facet_value %Cpp.long, (%DivAssignWith.impl_witness.b4b) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.578: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i32, %DivAssignWith.facet) [concrete] -// CHECK:STDOUT: %.2e1: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.578, %DivAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.ee65e7.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.2f8f46.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.ee65e7.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.2f8f46.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.baaf86.1: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.baaf86.2: %Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.6f8: = impl_witness imports.%DivAssignWith.impl_witness_table.483, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.1: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.2, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.a2f42c.1: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.2: type = fn_type @Cpp.long.as.DivAssignWith.impl.Op.1, @Cpp.long.as.DivAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.a2f42c.2: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.786 = facet_value %Cpp.long, (%DivAssignWith.impl_witness.6f8) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.3b9: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i32, %DivAssignWith.facet) [concrete] +// CHECK:STDOUT: %.4db: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.3b9, %DivAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.2d3f8f.1: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.a2f42c.2, @Cpp.long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn.2d3f8f.2: = specific_function %Cpp.long.as.DivAssignWith.impl.Op.a2f42c.1, @Cpp.long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %ModAssignWith.type.e49: type = facet_type <@ModAssignWith, @ModAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.666e79.1: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.666e79.2: %Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.a13: = impl_witness imports.%ModAssignWith.impl_witness_table.a2a, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.f69ad5.1: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.f69ad5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.e49 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.a13) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.de5: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i32, %ModAssignWith.facet) [concrete] -// CHECK:STDOUT: %.c03: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.de5, %ModAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.73e9bb.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.f69ad5.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.73e9bb.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.f69ad5.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.206fcc.1: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.206fcc.2: %Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.b83: = impl_witness imports.%ModAssignWith.impl_witness_table.1fd, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.1: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.2, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.4c75b0.1: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.2: type = fn_type @Cpp.long.as.ModAssignWith.impl.Op.1, @Cpp.long.as.ModAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.4c75b0.2: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.e49 = facet_value %Cpp.long, (%ModAssignWith.impl_witness.b83) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.18d: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i32, %ModAssignWith.facet) [concrete] +// CHECK:STDOUT: %.115: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.18d, %ModAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.98db73.1: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.4c75b0.2, @Cpp.long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn.98db73.2: = specific_function %Cpp.long.as.ModAssignWith.impl.Op.4c75b0.1, @Cpp.long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.d65: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.d99897.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.d99897.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.349: = impl_witness imports.%BitAndAssignWith.impl_witness_table.cc9, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.d65 = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.349) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.f71: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i32, %BitAndAssignWith.facet) [concrete] -// CHECK:STDOUT: %.a81: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.f71, %BitAndAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.560221.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.560221.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.ff6: = impl_witness imports.%BitAndAssignWith.impl_witness_table.ac5, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.1: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.2, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.1: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.2: type = fn_type @Cpp.long.as.BitAndAssignWith.impl.Op.1, @Cpp.long.as.BitAndAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.d65 = facet_value %Cpp.long, (%BitAndAssignWith.impl_witness.ff6) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.d82: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i32, %BitAndAssignWith.facet) [concrete] +// CHECK:STDOUT: %.397: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.d82, %BitAndAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.c9da76.1: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.2, @Cpp.long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.c9da76.2: = specific_function %Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.1, @Cpp.long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.6e9: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.119: = impl_witness imports.%BitOrAssignWith.impl_witness_table.54c, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.73e223.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.73e223.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.6e9 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.119) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.b79: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i32, %BitOrAssignWith.facet) [concrete] -// CHECK:STDOUT: %.1f8: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.b79, %BitOrAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.665975.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.73e223.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.665975.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.73e223.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.a56: = impl_witness imports.%BitOrAssignWith.impl_witness_table.d80, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.1: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.2, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.1: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.2: type = fn_type @Cpp.long.as.BitOrAssignWith.impl.Op.1, @Cpp.long.as.BitOrAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.6e9 = facet_value %Cpp.long, (%BitOrAssignWith.impl_witness.a56) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.1b3: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i32, %BitOrAssignWith.facet) [concrete] +// CHECK:STDOUT: %.ca1: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.1b3, %BitOrAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.8ea2e5.1: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.2, @Cpp.long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.8ea2e5.2: = specific_function %Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.1, @Cpp.long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.ea8: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.5aa: = impl_witness imports.%BitXorAssignWith.impl_witness_table.a39, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.616e38.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.616e38.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.ea8 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.5aa) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.291: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i32, %BitXorAssignWith.facet) [concrete] -// CHECK:STDOUT: %.9ab: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.291, %BitXorAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4cd193.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.616e38.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4cd193.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.616e38.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.aa9: = impl_witness imports.%BitXorAssignWith.impl_witness_table.fe4, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.1: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.2, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.edb545.1: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.2: type = fn_type @Cpp.long.as.BitXorAssignWith.impl.Op.1, @Cpp.long.as.BitXorAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.edb545.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.ea8 = facet_value %Cpp.long, (%BitXorAssignWith.impl_witness.aa9) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.330: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i32, %BitXorAssignWith.facet) [concrete] +// CHECK:STDOUT: %.670: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.330, %BitXorAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.2a5d24.1: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.edb545.2, @Cpp.long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.2a5d24.2: = specific_function %Cpp.long.as.BitXorAssignWith.impl.Op.edb545.1, @Cpp.long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.92b: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.199: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.74d, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.92b = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.199) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.706: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i32, %LeftShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.424: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.706, %LeftShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.3bd66d.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.3bd66d.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.aec: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.c76, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.1: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.1: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.2: type = fn_type @Cpp.long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.92b = facet_value %Cpp.long, (%LeftShiftAssignWith.impl_witness.aec) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.7be: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i32, %LeftShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.e8c: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.7be, %LeftShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9eb8bf.1: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.2, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9eb8bf.2: = specific_function %Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.8ae: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i32)> [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.328772.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.328772.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.e4e: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.b55, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.8ae = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.e4e) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.e38: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i32, %RightShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.eaa: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.e38, %RightShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c3db.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c3db.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.4a7: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.2d4, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.1: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.1: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.2: type = fn_type @Cpp.long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.8ae = facet_value %Cpp.long, (%RightShiftAssignWith.impl_witness.4a7) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.af4: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i32, %RightShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.08a: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.af4, %RightShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.8c339b.1: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.2, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.8c339b.2: = specific_function %Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3292,38 +3292,38 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.b8a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.b38 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f2a] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] -// CHECK:STDOUT: %Core.import_ref.d0e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.07a = impl_witness_table (%Core.import_ref.d0e), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f81: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.2)] +// CHECK:STDOUT: %Core.import_ref.c07: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.59e = impl_witness_table (%Core.import_ref.c07), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8bb: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.2)] // CHECK:STDOUT: %Core.import_ref.4fa: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.5ad = impl_witness_table (%Core.import_ref.4fa), @i32.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.bcb: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.c39240.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.f4b = impl_witness_table (%Core.import_ref.bcb), @Cpp.long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.739: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.1f2d1c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.c39240.2)] -// CHECK:STDOUT: %Core.import_ref.c5b: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.421374.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.8cc = impl_witness_table (%Core.import_ref.c5b), @Cpp.long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3b8: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.afa7f7.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.421374.2)] -// CHECK:STDOUT: %Core.import_ref.84d: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.6227df.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.6f7 = impl_witness_table (%Core.import_ref.84d), @Cpp.long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f47: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.f3536d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.6227df.2)] -// CHECK:STDOUT: %Core.import_ref.e98: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.666e79.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.a2a = impl_witness_table (%Core.import_ref.e98), @Cpp.long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.b37: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.2d6972.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.666e79.2)] -// CHECK:STDOUT: %Core.import_ref.325: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.d99897.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.cc9 = impl_witness_table (%Core.import_ref.325), @Cpp.long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.fe8: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.442dcf.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.d99897.2)] -// CHECK:STDOUT: %Core.import_ref.01a: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.54c = impl_witness_table (%Core.import_ref.01a), @Cpp.long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.5c2: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.219f14.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.e5afa1.2)] -// CHECK:STDOUT: %Core.import_ref.c8f: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.a39 = impl_witness_table (%Core.import_ref.c8f), @Cpp.long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.caf: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.8b07a5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c4d0d.2)] -// CHECK:STDOUT: %Core.import_ref.bcc: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.74d = impl_witness_table (%Core.import_ref.bcc), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.030: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.21420b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e204a3.2)] -// CHECK:STDOUT: %Core.import_ref.5f5: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.328772.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.b55 = impl_witness_table (%Core.import_ref.5f5), @Cpp.long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3b5: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.f850d3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.328772.2)] +// CHECK:STDOUT: %Core.import_ref.1a6: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.4445c4.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.714 = impl_witness_table (%Core.import_ref.1a6), @Cpp.long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.889: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.48a67d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.4445c4.2)] +// CHECK:STDOUT: %Core.import_ref.ab5: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long.as.MulAssignWith.impl.Op.type.684acb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long.as.MulAssignWith.impl.Op.6a090a.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.71c = impl_witness_table (%Core.import_ref.ab5), @Cpp.long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c34: @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long.as.MulAssignWith.impl.Op.type.684acb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.MulAssignWith.impl.%Cpp.long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long.as.MulAssignWith.impl.Op.6a090a.2)] +// CHECK:STDOUT: %Core.import_ref.585: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long.as.DivAssignWith.impl.Op.baaf86.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.483 = impl_witness_table (%Core.import_ref.585), @Cpp.long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.cd4: @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long.as.DivAssignWith.impl.Op.type.d25b13.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.DivAssignWith.impl.%Cpp.long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long.as.DivAssignWith.impl.Op.baaf86.2)] +// CHECK:STDOUT: %Core.import_ref.1ef: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long.as.ModAssignWith.impl.Op.206fcc.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.1fd = impl_witness_table (%Core.import_ref.1ef), @Cpp.long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.0d4c: @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long.as.ModAssignWith.impl.Op.type.4df61f.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.ModAssignWith.impl.%Cpp.long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long.as.ModAssignWith.impl.Op.206fcc.2)] +// CHECK:STDOUT: %Core.import_ref.045: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.ac5 = impl_witness_table (%Core.import_ref.045), @Cpp.long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.984: @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long.as.BitAndAssignWith.impl.Op.type.746cd7.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitAndAssignWith.impl.%Cpp.long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitAndAssignWith.impl.Op.0b15fa.2)] +// CHECK:STDOUT: %Core.import_ref.5e2: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.d80 = impl_witness_table (%Core.import_ref.5e2), @Cpp.long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.7ac: @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long.as.BitOrAssignWith.impl.Op.type.64aae1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitOrAssignWith.impl.%Cpp.long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitOrAssignWith.impl.Op.3b2429.2)] +// CHECK:STDOUT: %Core.import_ref.261: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.fe4 = impl_witness_table (%Core.import_ref.261), @Cpp.long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d36: @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long.as.BitXorAssignWith.impl.Op.type.6347f8.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.BitXorAssignWith.impl.%Cpp.long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long.as.BitXorAssignWith.impl.Op.3c8402.2)] +// CHECK:STDOUT: %Core.import_ref.8d3: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.c76 = impl_witness_table (%Core.import_ref.8d3), @Cpp.long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.f28: @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.LeftShiftAssignWith.impl.Op.type.bbb3f3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.LeftShiftAssignWith.impl.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.f91cfa.2)] +// CHECK:STDOUT: %Core.import_ref.559: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.2d4 = impl_witness_table (%Core.import_ref.559), @Cpp.long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.c63: @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long.as.RightShiftAssignWith.impl.Op.type.d1cdba.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.RightShiftAssignWith.impl.%Cpp.long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.43d513.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongAndI32() { @@ -3347,23 +3347,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.3d2 = impl_witness_access constants.%AddAssignWith.impl_witness.ca1, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.847 = impl_witness_access constants.%AddAssignWith.impl_witness.fe1, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = specific_constant imports.%Core.Op.f81, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.1] -// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = specific_constant imports.%Core.Op.8bb, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1] +// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc10, %Op.ref.loc10 -// CHECK:STDOUT: %impl.elem0.loc10_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long = call %bound_method.loc10_5.3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long = converted %b.ref.loc10, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref.loc10, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc10_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc10_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10_8: init %Cpp.long = call %bound_method.loc10_8(%b.ref.loc10) // CHECK:STDOUT: %.loc10_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10_8 @@ -3371,23 +3371,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.4(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11_5.1: %.432 = impl_witness_access constants.%SubAssignWith.impl_witness.200, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.22e054.2] +// CHECK:STDOUT: %impl.elem0.loc11_5.1: %.0c9 = impl_witness_access constants.%SubAssignWith.impl_witness.06c, element0 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.ce830d.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5.1, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.dd31df.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5.1, @Cpp.long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.d08c13.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.1 = specific_constant imports.%Core.Op.739, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.22e054.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.SubAssignWith.impl.Op.type.f5cce2.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.22e054.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.1 = specific_constant imports.%Core.Op.889, @Cpp.long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.ce830d.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long.as.SubAssignWith.impl.Op.type.774eaf.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.ce830d.1] // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %impl.elem0.loc11_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %impl.elem0.loc11_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11_5: init %Cpp.long = call %bound_method.loc11_5.3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11_5 // CHECK:STDOUT: %.loc11_5.4: %Cpp.long = converted %b.ref.loc11, %.loc11_5.3 -// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.dd31df.2] +// CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.SubAssignWith.impl.Op.specific_fn.d08c13.2] // CHECK:STDOUT: %bound_method.loc11_5.4: = bound_method %a.ref.loc11, %Cpp.long.as.SubAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc11_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc11_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc11_8: init %Cpp.long = call %bound_method.loc11_8(%b.ref.loc11) // CHECK:STDOUT: %.loc11_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc11_8 @@ -3395,23 +3395,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.4(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12_5.1: %.fbe = impl_witness_access constants.%MulAssignWith.impl_witness.c16, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.2] +// CHECK:STDOUT: %impl.elem0.loc12_5.1: %.a57 = impl_witness_access constants.%MulAssignWith.impl_witness.eb4, element0 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.848c12.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5.1, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.c127b2.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5.1, @Cpp.long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.646b46.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.1 = specific_constant imports.%Core.Op.3b8, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.MulAssignWith.impl.Op.type.d2f0ca.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.8b6fd2.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.1 = specific_constant imports.%Core.Op.c34, @Cpp.long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.848c12.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long.as.MulAssignWith.impl.Op.type.3a5234.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.848c12.1] // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %impl.elem0.loc12_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %impl.elem0.loc12_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12_5: init %Cpp.long = call %bound_method.loc12_5.3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12_5 // CHECK:STDOUT: %.loc12_5.4: %Cpp.long = converted %b.ref.loc12, %.loc12_5.3 -// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.c127b2.2] +// CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.MulAssignWith.impl.Op.specific_fn.646b46.2] // CHECK:STDOUT: %bound_method.loc12_5.4: = bound_method %a.ref.loc12, %Cpp.long.as.MulAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc12_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc12_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_8: = bound_method %b.ref.loc12, %impl.elem0.loc12_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc12_8: init %Cpp.long = call %bound_method.loc12_8(%b.ref.loc12) // CHECK:STDOUT: %.loc12_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc12_8 @@ -3419,23 +3419,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.4(%a.ref.loc12, %.loc12_8.2) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.2e1 = impl_witness_access constants.%DivAssignWith.impl_witness.b4b, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.2f8f46.2] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.4db = impl_witness_access constants.%DivAssignWith.impl_witness.6f8, element0 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.a2f42c.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.ee65e7.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.2d3f8f.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.1 = specific_constant imports.%Core.Op.f47, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.2f8f46.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.DivAssignWith.impl.Op.type.16271d.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.2f8f46.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.1 = specific_constant imports.%Core.Op.cd4, @Cpp.long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.a2f42c.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long.as.DivAssignWith.impl.Op.type.aba907.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.a2f42c.1] // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %impl.elem0.loc13_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %impl.elem0.loc13_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13_5: init %Cpp.long = call %bound_method.loc13_5.3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13_5 // CHECK:STDOUT: %.loc13_5.4: %Cpp.long = converted %b.ref.loc13, %.loc13_5.3 -// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.ee65e7.2] +// CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.DivAssignWith.impl.Op.specific_fn.2d3f8f.2] // CHECK:STDOUT: %bound_method.loc13_5.4: = bound_method %a.ref.loc13, %Cpp.long.as.DivAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc13_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc13_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_8: = bound_method %b.ref.loc13, %impl.elem0.loc13_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc13_8: init %Cpp.long = call %bound_method.loc13_8(%b.ref.loc13) // CHECK:STDOUT: %.loc13_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc13_8 @@ -3443,23 +3443,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.4(%a.ref.loc13, %.loc13_8.2) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14_5.1: %.c03 = impl_witness_access constants.%ModAssignWith.impl_witness.a13, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.f69ad5.2] +// CHECK:STDOUT: %impl.elem0.loc14_5.1: %.115 = impl_witness_access constants.%ModAssignWith.impl_witness.b83, element0 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.4c75b0.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5.1, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.73e9bb.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5.1, @Cpp.long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.98db73.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.1 = specific_constant imports.%Core.Op.b37, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.f69ad5.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.ModAssignWith.impl.Op.type.e2a2e6.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.f69ad5.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.1 = specific_constant imports.%Core.Op.0d4c, @Cpp.long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.4c75b0.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long.as.ModAssignWith.impl.Op.type.55a082.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.4c75b0.1] // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %impl.elem0.loc14_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %impl.elem0.loc14_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14_5: init %Cpp.long = call %bound_method.loc14_5.3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14_5 // CHECK:STDOUT: %.loc14_5.4: %Cpp.long = converted %b.ref.loc14, %.loc14_5.3 -// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.73e9bb.2] +// CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.ModAssignWith.impl.Op.specific_fn.98db73.2] // CHECK:STDOUT: %bound_method.loc14_5.4: = bound_method %a.ref.loc14, %Cpp.long.as.ModAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc14_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc14_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc14_8: init %Cpp.long = call %bound_method.loc14_8(%b.ref.loc14) // CHECK:STDOUT: %.loc14_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc14_8 @@ -3467,23 +3467,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.4(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc16: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc16: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc16_5.1: %.a81 = impl_witness_access constants.%BitAndAssignWith.impl_witness.349, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.2] +// CHECK:STDOUT: %impl.elem0.loc16_5.1: %.397 = impl_witness_access constants.%BitAndAssignWith.impl_witness.ff6, element0 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.2] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %a.ref.loc16, %impl.elem0.loc16_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5.1, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.560221.1] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5.1, @Cpp.long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.c9da76.1] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %a.ref.loc16, %specific_fn.loc16 -// CHECK:STDOUT: %.loc16_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.1 = specific_constant imports.%Core.Op.fe8, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.1] -// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long.as.BitAndAssignWith.impl.Op.type.aa6f07.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.5f705c.1] +// CHECK:STDOUT: %.loc16_5.2: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.1 = specific_constant imports.%Core.Op.984, @Cpp.long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.1] +// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long.as.BitAndAssignWith.impl.Op.type.4cf1e9.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.88cf6e.1] // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc16, %Op.ref.loc16 -// CHECK:STDOUT: %impl.elem0.loc16_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc16_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_5.3: = bound_method %b.ref.loc16, %impl.elem0.loc16_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc16_5: init %Cpp.long = call %bound_method.loc16_5.3(%b.ref.loc16) // CHECK:STDOUT: %.loc16_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc16_5 // CHECK:STDOUT: %.loc16_5.4: %Cpp.long = converted %b.ref.loc16, %.loc16_5.3 -// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.560221.2] +// CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn.c9da76.2] // CHECK:STDOUT: %bound_method.loc16_5.4: = bound_method %a.ref.loc16, %Cpp.long.as.BitAndAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc16_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc16_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_8: = bound_method %b.ref.loc16, %impl.elem0.loc16_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc16_8: init %Cpp.long = call %bound_method.loc16_8(%b.ref.loc16) // CHECK:STDOUT: %.loc16_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc16_8 @@ -3491,23 +3491,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_5.4(%a.ref.loc16, %.loc16_8.2) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.1f8 = impl_witness_access constants.%BitOrAssignWith.impl_witness.119, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.73e223.2] +// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.ca1 = impl_witness_access constants.%BitOrAssignWith.impl_witness.a56, element0 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.665975.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.8ea2e5.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.1 = specific_constant imports.%Core.Op.5c2, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.73e223.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitOrAssignWith.impl.Op.type.fac636.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.73e223.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.1 = specific_constant imports.%Core.Op.7ac, @Cpp.long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long.as.BitOrAssignWith.impl.Op.type.e80b54.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.ff457f.1] // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %impl.elem0.loc17_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc17_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %b.ref.loc17, %impl.elem0.loc17_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc17_5: init %Cpp.long = call %bound_method.loc17_5.3(%b.ref.loc17) // CHECK:STDOUT: %.loc17_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc17_5 // CHECK:STDOUT: %.loc17_5.4: %Cpp.long = converted %b.ref.loc17, %.loc17_5.3 -// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.665975.2] +// CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn.8ea2e5.2] // CHECK:STDOUT: %bound_method.loc17_5.4: = bound_method %a.ref.loc17, %Cpp.long.as.BitOrAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc17_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc17_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %b.ref.loc17, %impl.elem0.loc17_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc17_8: init %Cpp.long = call %bound_method.loc17_8(%b.ref.loc17) // CHECK:STDOUT: %.loc17_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc17_8 @@ -3515,23 +3515,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.4(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18_5.1: %.9ab = impl_witness_access constants.%BitXorAssignWith.impl_witness.5aa, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.616e38.2] +// CHECK:STDOUT: %impl.elem0.loc18_5.1: %.670 = impl_witness_access constants.%BitXorAssignWith.impl_witness.aa9, element0 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.edb545.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5.1, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4cd193.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5.1, @Cpp.long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.2a5d24.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.1 = specific_constant imports.%Core.Op.caf, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.616e38.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitXorAssignWith.impl.Op.type.53faad.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.616e38.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.1 = specific_constant imports.%Core.Op.d36, @Cpp.long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.edb545.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long.as.BitXorAssignWith.impl.Op.type.147fea.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.edb545.1] // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %impl.elem0.loc18_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc18_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %b.ref.loc18, %impl.elem0.loc18_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc18_5: init %Cpp.long = call %bound_method.loc18_5.3(%b.ref.loc18) // CHECK:STDOUT: %.loc18_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc18_5 // CHECK:STDOUT: %.loc18_5.4: %Cpp.long = converted %b.ref.loc18, %.loc18_5.3 -// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.4cd193.2] +// CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn.2a5d24.2] // CHECK:STDOUT: %bound_method.loc18_5.4: = bound_method %a.ref.loc18, %Cpp.long.as.BitXorAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc18_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc18_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %b.ref.loc18, %impl.elem0.loc18_8 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc18_8: init %Cpp.long = call %bound_method.loc18_8(%b.ref.loc18) // CHECK:STDOUT: %.loc18_8.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc18_8 @@ -3539,23 +3539,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.4(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19_5.1: %.424 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.199, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.2] +// CHECK:STDOUT: %impl.elem0.loc19_5.1: %.e8c = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.aec, element0 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.3bd66d.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5.1, @Cpp.long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9eb8bf.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.1 = specific_constant imports.%Core.Op.030, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.426a0e.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.e25b25.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.1 = specific_constant imports.%Core.Op.f28, @Cpp.long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long.as.LeftShiftAssignWith.impl.Op.type.97b9eb.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.1ecf0e.1] // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %impl.elem0.loc19_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc19_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %b.ref.loc19, %impl.elem0.loc19_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc19_5: init %Cpp.long = call %bound_method.loc19_5.3(%b.ref.loc19) // CHECK:STDOUT: %.loc19_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc19_5 // CHECK:STDOUT: %.loc19_5.4: %Cpp.long = converted %b.ref.loc19, %.loc19_5.3 -// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.3bd66d.2] +// CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn.9eb8bf.2] // CHECK:STDOUT: %bound_method.loc19_5.4: = bound_method %a.ref.loc19, %Cpp.long.as.LeftShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc19_9: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc19_9: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_9: = bound_method %b.ref.loc19, %impl.elem0.loc19_9 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc19_9: init %Cpp.long = call %bound_method.loc19_9(%b.ref.loc19) // CHECK:STDOUT: %.loc19_9.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc19_9 @@ -3563,23 +3563,23 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %Cpp.long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.4(%a.ref.loc19, %.loc19_9.2) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.eaa = impl_witness_access constants.%RightShiftAssignWith.impl_witness.e4e, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.2] +// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.08a = impl_witness_access constants.%RightShiftAssignWith.impl_witness.4a7, element0 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5.1 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc39) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c3db.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.8c339b.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.1 = specific_constant imports.%Core.Op.3b5, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.f2dfa9.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.56db42.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.1 = specific_constant imports.%Core.Op.c63, @Cpp.long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long.as.RightShiftAssignWith.impl.Op.type.e4a06a.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.b505ae.1] // CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %impl.elem0.loc20_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc20_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %b.ref.loc20, %impl.elem0.loc20_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc20_5: init %Cpp.long = call %bound_method.loc20_5.3(%b.ref.loc20) // CHECK:STDOUT: %.loc20_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc20_5 // CHECK:STDOUT: %.loc20_5.4: %Cpp.long = converted %b.ref.loc20, %.loc20_5.3 -// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.11c3db.2] +// CHECK:STDOUT: %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn.8c339b.2] // CHECK:STDOUT: %bound_method.loc20_5.4: = bound_method %a.ref.loc20, %Cpp.long.as.RightShiftAssignWith.impl.Op.specific_fn -// CHECK:STDOUT: %impl.elem0.loc20_9: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc20_9: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc39, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_9: = bound_method %b.ref.loc20, %impl.elem0.loc20_9 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc20_9: init %Cpp.long = call %bound_method.loc20_9(%b.ref.loc20) // CHECK:STDOUT: %.loc20_9.1: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc20_9 @@ -3617,20 +3617,20 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5a4: %Cpp.long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.761: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %U.57d: %ImplicitAs.type.819 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.1: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.2: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2 = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.623: = impl_witness imports.%AddAssignWith.impl_witness_table.07a, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.5fb128.1: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.5fb128.2: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.761 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.623) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.e1c: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.2e2: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.e1c, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.3a3075.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.5fb128.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.3a3075.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.5fb128.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.1: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.2: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2 = struct_value () [symbolic] +// CHECK:STDOUT: %AddAssignWith.impl_witness.49d: = impl_witness imports.%AddAssignWith.impl_witness_table.59e, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.92c8f4.1: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.92c8f4.2: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.761 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.49d) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.298: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.c39: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.298, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.7e6d5c.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.92c8f4.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.7e6d5c.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.92c8f4.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3642,9 +3642,9 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.b8a: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] -// CHECK:STDOUT: %Core.import_ref.d0e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.07a = impl_witness_table (%Core.import_ref.d0e), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f81: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.2)] +// CHECK:STDOUT: %Core.import_ref.c07: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.59e = impl_witness_table (%Core.import_ref.c07), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8bb: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongAndIntLiteral() { @@ -3667,21 +3667,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %a: ref %Cpp.long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_5.1: %.2e2 = impl_witness_access constants.%AddAssignWith.impl_witness.623, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.5fb128.2] +// CHECK:STDOUT: %impl.elem0.loc9_5.1: %.c39 = impl_witness_access constants.%AddAssignWith.impl_witness.49d, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.92c8f4.2] // CHECK:STDOUT: %bound_method.loc9_5.1: = bound_method %a.ref, %impl.elem0.loc9_5.1 // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.819 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.2ce) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.819 = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.3a3075.1] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.7e6d5c.1] // CHECK:STDOUT: %bound_method.loc9_5.2: = bound_method %a.ref, %specific_fn -// CHECK:STDOUT: %.loc9_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.1 = specific_constant imports.%Core.Op.f81, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.5fb128.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.a474b7.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.5fb128.1] +// CHECK:STDOUT: %.loc9_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.1 = specific_constant imports.%Core.Op.8bb, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.92c8f4.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.793d6a.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.92c8f4.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref // CHECK:STDOUT: %impl.elem0.loc9_5.2: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_5.3: = bound_method %int_1.loc9, %impl.elem0.loc9_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_5: init %Cpp.long = call %bound_method.loc9_5.3(%int_1.loc9) [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc9_5.3: %Cpp.long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_5 [concrete = constants.%int_1.5a4] // CHECK:STDOUT: %.loc9_5.4: %Cpp.long = converted %int_1.loc9, %.loc9_5.3 [concrete = constants.%int_1.5a4] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.3a3075.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.7e6d5c.2] // CHECK:STDOUT: %bound_method.loc9_5.4: = bound_method %a.ref, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc9_8: %.c0c = impl_witness_access constants.%ImplicitAs.impl_witness.2ce, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_8: = bound_method %int_1.loc9, %impl.elem0.loc9_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] @@ -3737,26 +3737,26 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %int_1.5d2: %i32 = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.794: type = facet_type <@AddAssignWith, @AddAssignWith(%i32)> [concrete] // CHECK:STDOUT: %U.57d: %ImplicitAs.type.819 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.1: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.78f138.2: %Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.1: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%U.57d) [symbolic] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.09d746.2: %Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.0fc: = impl_witness imports.%ImplicitAs.impl_witness_table.5ad [concrete] // CHECK:STDOUT: %ImplicitAs.facet.174: %ImplicitAs.type.819 = facet_value %i32, (%ImplicitAs.impl_witness.0fc) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.ca1: = impl_witness imports.%AddAssignWith.impl_witness_table.07a, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d19046.1: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.d19046.2: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.794 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.ca1) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.6a4: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.3d2: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.6a4, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d19046.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.fe1: = impl_witness imports.%AddAssignWith.impl_witness_table.59e, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.2, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.2: type = fn_type @Cpp.long.as.AddAssignWith.impl.Op.1, @Cpp.long.as.AddAssignWith.impl(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.794 = facet_value %Cpp.long, (%AddAssignWith.impl_witness.fe1) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.45c: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i32, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.847: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.45c, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.1: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2, @Cpp.long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.9f0: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long, %ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.9f0, %ImplicitAs.facet.174 [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.type: type = fn_type @i32.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert: %i32.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.d19046.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.2: = specific_function %Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1, @Cpp.long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.174) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3770,9 +3770,9 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.903 = impl_witness_table (%Core.import_ref.b8a), @Core.IntLiteral.as.ImplicitAs.impl.052 [concrete] // CHECK:STDOUT: %Core.import_ref.42d: @Core.IntLiteral.as.ImplicitAs.impl.b2d.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.4e6) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b2d.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3c2)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.74f = impl_witness_table (%Core.import_ref.42d), @Core.IntLiteral.as.ImplicitAs.impl.b2d [concrete] -// CHECK:STDOUT: %Core.import_ref.d0e: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.07a = impl_witness_table (%Core.import_ref.d0e), @Cpp.long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.f81: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.9f3dfb.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.78f138.2)] +// CHECK:STDOUT: %Core.import_ref.c07: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.59e = impl_witness_table (%Core.import_ref.c07), @Cpp.long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.8bb: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.1aeb96.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.09d746.2)] // CHECK:STDOUT: %Core.import_ref.4fa: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.5ad = impl_witness_table (%Core.import_ref.4fa), @i32.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -3810,21 +3810,21 @@ fn CopyUnsignedLong() { // CHECK:STDOUT: %b: %i32 = value_binding b, %.loc9_16.2 // CHECK:STDOUT: %a.ref: ref %Cpp.long = name_ref a, %a // CHECK:STDOUT: %b.ref: %i32 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.3d2 = impl_witness_access constants.%AddAssignWith.impl_witness.ca1, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.847 = impl_witness_access constants.%AddAssignWith.impl_witness.fe1, element0 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref, %impl.elem0.loc10_5.1 // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.819 = facet_value constants.%i32, (constants.%ImplicitAs.impl_witness.0fc) [concrete = constants.%ImplicitAs.facet.174] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.819 = converted constants.%i32, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.174] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = specific_constant imports.%Core.Op.f81, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.8bd196.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.d19046.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = specific_constant imports.%Core.Op.8bb, @Cpp.long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long.as.AddAssignWith.impl.Op.type.7007c6.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.c27e6e.1] // CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref // CHECK:STDOUT: %impl.elem0.loc10_5.2: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i32.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long = call %bound_method.loc10_5.3(%b.ref) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long = value_of_initializer %i32.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long = converted %b.ref, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.2a1dd4.2] +// CHECK:STDOUT: %Cpp.long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.174) [concrete = constants.%Cpp.long.as.AddAssignWith.impl.Op.specific_fn.bc1181.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref, %Cpp.long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc10_8: %.bb8 = impl_witness_access constants.%ImplicitAs.impl_witness.0fc, element0 [concrete = constants.%i32.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref, %impl.elem0.loc10_8 diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon index 447e7ea1388c..97937376264b 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/long_and_long_long.lp64.carbon @@ -1498,143 +1498,143 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.092: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %EqWith.type.d68: type = facet_type <@EqWith, @EqWith(%i64)> [concrete] // CHECK:STDOUT: %T.ea5: %ImplicitAs.type.a03 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.1bc(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.e250a6.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.1bc(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.e250a6.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.1bc(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.7b9c94.1: %Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.1bc(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.7b9c94.2: %Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.67e(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bab317.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.67e(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bab317.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.67e(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.214d79.1: %Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.67e(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.214d79.2: %Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.2 = struct_value () [symbolic] // CHECK:STDOUT: %EqWith.type.ded: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %ImplicitAs.impl_witness.1b3: = impl_witness imports.%ImplicitAs.impl_witness_table.b19 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.c59: %ImplicitAs.type.a03 = facet_value %i64, (%ImplicitAs.impl_witness.1b3) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.756: = impl_witness imports.%EqWith.impl_witness_table.902, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.610927.1: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.610927.2: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.d0f: %EqWith.type.d68 = facet_value %Cpp.long_long, (%EqWith.impl_witness.756) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.0d2: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i64, %EqWith.facet.d0f) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.0eb: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i64, %EqWith.facet.d0f) [concrete] -// CHECK:STDOUT: %.357: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.0d2, %EqWith.facet.d0f [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.29a235.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.610927.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.ff9: = impl_witness imports.%EqWith.impl_witness_table.e2e, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.502737.1: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.502737.2: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.2e5: %EqWith.type.d68 = facet_value %Cpp.long_long, (%EqWith.impl_witness.ff9) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.60f: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%i64, %EqWith.facet.2e5) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.3c0: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%i64, %EqWith.facet.2e5) [concrete] +// CHECK:STDOUT: %.ce4: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.60f, %EqWith.facet.2e5 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.634a1c.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.502737.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.653: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %.cb1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.653, %ImplicitAs.facet.c59 [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.29a235.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.610927.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.d50: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.0eb, %EqWith.facet.d0f [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.b9c577.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.b9c577.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.634a1c.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.502737.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.d6c: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.3c0, %EqWith.facet.2e5 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.befbae.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.befbae.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %OrderedWith.type.e34: type = facet_type <@OrderedWith, @OrderedWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.300fb6.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.300fb6.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.a3ca0e.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.a3ca0e.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.8dc0bf.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.8dc0bf.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.2 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.c164d2.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%T.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.c164d2.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.56f4c1.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.56f4c1.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.6d5ff8.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.6d5ff8.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.d90ce2.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.d90ce2.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.95a450.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.79a(%T.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.95a450.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.2 = struct_value () [symbolic] // CHECK:STDOUT: %OrderedWith.type.358: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.940: = impl_witness imports.%OrderedWith.impl_witness_table.a1b, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.39610d.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.136328.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.39610d.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.136328.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.149: %OrderedWith.type.e34 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.940) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d11: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.149) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.3e3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.149) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.4a1: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.149) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.065: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.149) [concrete] -// CHECK:STDOUT: %.e0d: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.4a1, %OrderedWith.facet.149 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.9b8255.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.136328.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.9b8255.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.136328.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.c1d: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d11, %OrderedWith.facet.149 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.294c7c.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.39610d.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.294c7c.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.39610d.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.f24: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.065, %OrderedWith.facet.149 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ffe884.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ffe884.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.6b0: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.3e3, %OrderedWith.facet.149 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.5291ea.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.5291ea.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.5f3: = impl_witness imports.%EqWith.impl_witness_table.902, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.3190b1.1: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.3190b1.2: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.1bc(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.8cf: %EqWith.type.ded = facet_value %Cpp.long_long, (%EqWith.impl_witness.5f3) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.fe8: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.8cf) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.8c1: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.8cf) [concrete] -// CHECK:STDOUT: %.b86: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.fe8, %EqWith.facet.8cf [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.72c761.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.3190b1.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.72c761.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.3190b1.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %.251: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.8c1, %EqWith.facet.8cf [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.ace954.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.ace954.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.31a: = impl_witness imports.%OrderedWith.impl_witness_table.a1b, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.2 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.ef6(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.8a0: %OrderedWith.type.358 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.31a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.a91: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.6cb: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.a55: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.2c3: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.8a0) [concrete] -// CHECK:STDOUT: %.5d9: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.a55, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.b9662b.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.b9662b.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %.885: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.a91, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.50db42.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.50db42.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %.ea1: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.2c3, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.662ddf.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.662ddf.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %.da4: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.6cb, %OrderedWith.facet.8a0 [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b1c4c5.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b1c4c5.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.67f: = impl_witness imports.%OrderedWith.impl_witness_table.71f, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0c8072.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0c8072.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.97d: %OrderedWith.type.e34 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.67f) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.904: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.97d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.df8: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.97d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.546: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.97d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.7ca: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%i64, %OrderedWith.facet.97d) [concrete] +// CHECK:STDOUT: %.254: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.546, %OrderedWith.facet.97d [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.1ff976.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.1ff976.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.aed: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.904, %OrderedWith.facet.97d [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.52d741.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.0c8072.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.52d741.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.0c8072.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.b31: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.7ca, %OrderedWith.facet.97d [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e28331.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e28331.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.a86: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.df8, %OrderedWith.facet.97d [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.abe2fe.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.abe2fe.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.504: = impl_witness imports.%EqWith.impl_witness_table.e2e, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.1: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.67e(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.179: %EqWith.type.ded = facet_value %Cpp.long_long, (%EqWith.impl_witness.504) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5e2: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.179) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.510: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(Core.IntLiteral, %EqWith.facet.179) [concrete] +// CHECK:STDOUT: %.639: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5e2, %EqWith.facet.179 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.92aa2e.1: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.2, @Cpp.long_long.as.EqWith.impl.Equal.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.92aa2e.2: = specific_function %Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.1, @Cpp.long_long.as.EqWith.impl.Equal.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %.f02: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.510, %EqWith.facet.179 [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d6554.1: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.2, @Cpp.long_long.as.EqWith.impl.NotEqual.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d6554.2: = specific_function %Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.1, @Cpp.long_long.as.EqWith.impl.NotEqual.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.18f: = impl_witness imports.%OrderedWith.impl_witness_table.71f, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.938bb5.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.938bb5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.2 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.79a(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.a4a: %OrderedWith.type.358 = facet_value %Cpp.long_long, (%OrderedWith.impl_witness.18f) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.86b: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.a4a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.5bf: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.a4a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.ed9: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.a4a) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.6cb: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(Core.IntLiteral, %OrderedWith.facet.a4a) [concrete] +// CHECK:STDOUT: %.840: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.ed9, %OrderedWith.facet.a4a [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.7855f8.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.2, @Cpp.long_long.as.OrderedWith.impl.Greater.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.7855f8.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.1, @Cpp.long_long.as.OrderedWith.impl.Greater.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %.14b: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.86b, %OrderedWith.facet.a4a [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.9934b4.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.938bb5.2, @Cpp.long_long.as.OrderedWith.impl.Less.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.9934b4.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.Less.938bb5.1, @Cpp.long_long.as.OrderedWith.impl.Less.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %.cc0: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.6cb, %OrderedWith.facet.a4a [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ed5e.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.2, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ed5e.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.1, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %.038: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.5bf, %OrderedWith.facet.a4a [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4b3629.1: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.2, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4b3629.2: = specific_function %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.1, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(%ImplicitAs.facet.d52) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -1644,22 +1644,22 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.d64: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.aba = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] -// CHECK:STDOUT: %Core.import_ref.142: @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.Equal.type.2 (%Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.Equal.2 (constants.%Cpp.long_long.as.EqWith.impl.Equal.7b9c94.1)] -// CHECK:STDOUT: %Core.import_ref.71f: @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.e250a6.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.902 = impl_witness_table (%Core.import_ref.142, %Core.import_ref.71f), @Cpp.long_long.as.EqWith.impl.1bc [concrete] -// CHECK:STDOUT: %Core.NotEqual.dea: @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.a5582c.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.e250a6.2)] -// CHECK:STDOUT: %Core.Equal.357: @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.Equal.type.1 (%Cpp.long_long.as.EqWith.impl.Equal.type.ec19bf.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.1bc.%Cpp.long_long.as.EqWith.impl.Equal.1 (constants.%Cpp.long_long.as.EqWith.impl.Equal.7b9c94.2)] +// CHECK:STDOUT: %Core.import_ref.fb2: @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.Equal.type.2 (%Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.Equal.2 (constants.%Cpp.long_long.as.EqWith.impl.Equal.214d79.1)] +// CHECK:STDOUT: %Core.import_ref.ad7: @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.bab317.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.e2e = impl_witness_table (%Core.import_ref.fb2, %Core.import_ref.ad7), @Cpp.long_long.as.EqWith.impl.67e [concrete] +// CHECK:STDOUT: %Core.NotEqual.6a9: @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.bcc133.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.bab317.2)] +// CHECK:STDOUT: %Core.Equal.72f: @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.Equal.type.1 (%Cpp.long_long.as.EqWith.impl.Equal.type.6201cf.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.67e.%Cpp.long_long.as.EqWith.impl.Equal.1 (constants.%Cpp.long_long.as.EqWith.impl.Equal.214d79.2)] // CHECK:STDOUT: %Core.import_ref.4f4: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.b19 = impl_witness_table (%Core.import_ref.4f4), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.81d: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Less.type.2 (%Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.c164d2.1)] -// CHECK:STDOUT: %Core.import_ref.21c: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.8dc0bf.1)] -// CHECK:STDOUT: %Core.import_ref.298: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.a3ca0e.1)] -// CHECK:STDOUT: %Core.import_ref.e3de: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.300fb6.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.a1b = impl_witness_table (%Core.import_ref.81d, %Core.import_ref.21c, %Core.import_ref.298, %Core.import_ref.e3de), @Cpp.long_long.as.OrderedWith.impl.ef6 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.489: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.89fdb1.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.300fb6.2)] -// CHECK:STDOUT: %Core.Greater.a10: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9fb493.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.a3ca0e.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.aaf: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.3ce459.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.8dc0bf.2)] -// CHECK:STDOUT: %Core.Less.511: @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Less.type.1 (%Cpp.long_long.as.OrderedWith.impl.Less.type.d531c6.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.ef6.%Cpp.long_long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.c164d2.2)] +// CHECK:STDOUT: %Core.import_ref.b58: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Less.type.2 (%Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.95a450.1)] +// CHECK:STDOUT: %Core.import_ref.1f9: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.d90ce2.1)] +// CHECK:STDOUT: %Core.import_ref.8d7: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.6d5ff8.1)] +// CHECK:STDOUT: %Core.import_ref.7a9: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.56f4c1.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.71f = impl_witness_table (%Core.import_ref.b58, %Core.import_ref.1f9, %Core.import_ref.8d7, %Core.import_ref.7a9), @Cpp.long_long.as.OrderedWith.impl.79a [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.56b: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.c38dd8.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.56f4c1.2)] +// CHECK:STDOUT: %Core.Greater.a90: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.673884.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.6d5ff8.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.33c: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.9656b7.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.d90ce2.2)] +// CHECK:STDOUT: %Core.Less.0ea: @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Less.type.1 (%Cpp.long_long.as.OrderedWith.impl.Less.type.acb80a.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.79a.%Cpp.long_long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.95a450.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongLeftSide() { @@ -1681,21 +1681,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: %Cpp.long_long = value_binding a, %.loc9_26.2 // CHECK:STDOUT: %a.ref.loc10: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.357 = impl_witness_access constants.%EqWith.impl_witness.756, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.610927.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.ce4 = impl_witness_access constants.%EqWith.impl_witness.ff9, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.502737.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.29a235.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.634a1c.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.1 = specific_constant imports.%Core.Equal.357, @Cpp.long_long.as.EqWith.impl.1bc(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.610927.1] -// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long_long.as.EqWith.impl.Equal.type.2f62f8.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.610927.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.1 = specific_constant imports.%Core.Equal.72f, @Cpp.long_long.as.EqWith.impl.67e(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.502737.1] +// CHECK:STDOUT: %Equal.ref.loc10: %Cpp.long_long.as.EqWith.impl.Equal.type.c56f73.1 = name_ref Equal, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.502737.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.bound.loc10: = bound_method %a.ref.loc10, %Equal.ref.loc10 // CHECK:STDOUT: %impl.elem0.loc10_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long_long = call %bound_method.loc10_5.3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long_long = converted %b.ref.loc10, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.29a235.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.634a1c.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref.loc10, %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc10 // CHECK:STDOUT: %impl.elem0.loc10_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 @@ -1705,21 +1705,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.4(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc11: %.d50 = impl_witness_access constants.%EqWith.impl_witness.756, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.d6c = impl_witness_access constants.%EqWith.impl_witness.ff9, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem1.loc11 // CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.b9c577.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.befbae.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.1 = specific_constant imports.%Core.NotEqual.dea, @Cpp.long_long.as.EqWith.impl.1bc(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8239fe.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.81fbd8.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.1 = specific_constant imports.%Core.NotEqual.6a9, @Cpp.long_long.as.EqWith.impl.67e(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %Cpp.long_long.as.EqWith.impl.NotEqual.type.64e27b.1 = name_ref NotEqual, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.1e17d3.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %a.ref.loc11, %NotEqual.ref.loc11 // CHECK:STDOUT: %impl.elem0.loc11_5: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %impl.elem0.loc11_5 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11_5: init %Cpp.long_long = call %bound_method.loc11_5.3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11_5 // CHECK:STDOUT: %.loc11_5.4: %Cpp.long_long = converted %b.ref.loc11, %.loc11_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.b9c577.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.befbae.2] // CHECK:STDOUT: %bound_method.loc11_5.4: = bound_method %a.ref.loc11, %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc11 // CHECK:STDOUT: %impl.elem0.loc11_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 @@ -1729,21 +1729,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.4(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem2.loc12: %.e0d = impl_witness_access constants.%OrderedWith.impl_witness.940, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.136328.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.254 = impl_witness_access constants.%OrderedWith.impl_witness.67f, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem2.loc12 // CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.9b8255.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.1ff976.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.1 = specific_constant imports.%Core.Greater.a10, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.136328.1] -// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long_long.as.OrderedWith.impl.Greater.type.1d3e50.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.136328.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.1 = specific_constant imports.%Core.Greater.a90, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.1] +// CHECK:STDOUT: %Greater.ref.loc12: %Cpp.long_long.as.OrderedWith.impl.Greater.type.81b99c.1 = name_ref Greater, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.578bc4.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %a.ref.loc12, %Greater.ref.loc12 // CHECK:STDOUT: %impl.elem0.loc12_5: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %impl.elem0.loc12_5 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12_5: init %Cpp.long_long = call %bound_method.loc12_5.3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12_5 // CHECK:STDOUT: %.loc12_5.4: %Cpp.long_long = converted %b.ref.loc12, %.loc12_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.9b8255.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.1ff976.2] // CHECK:STDOUT: %bound_method.loc12_5.4: = bound_method %a.ref.loc12, %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc12 // CHECK:STDOUT: %impl.elem0.loc12_7: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_7: = bound_method %b.ref.loc12, %impl.elem0.loc12_7 @@ -1753,21 +1753,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.4(%a.ref.loc12, %.loc12_7.2) // CHECK:STDOUT: %a.ref.loc13: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.c1d = impl_witness_access constants.%OrderedWith.impl_witness.940, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.39610d.2] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.aed = impl_witness_access constants.%OrderedWith.impl_witness.67f, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0c8072.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.294c7c.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.52d741.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.1 = specific_constant imports.%Core.Less.511, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.39610d.1] -// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long_long.as.OrderedWith.impl.Less.type.c81272.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.39610d.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.1 = specific_constant imports.%Core.Less.0ea, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0c8072.1] +// CHECK:STDOUT: %Less.ref.loc13: %Cpp.long_long.as.OrderedWith.impl.Less.type.9ca40a.1 = name_ref Less, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.0c8072.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.bound.loc13: = bound_method %a.ref.loc13, %Less.ref.loc13 // CHECK:STDOUT: %impl.elem0.loc13_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %impl.elem0.loc13_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13_5: init %Cpp.long_long = call %bound_method.loc13_5.3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13_5 // CHECK:STDOUT: %.loc13_5.4: %Cpp.long_long = converted %b.ref.loc13, %.loc13_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.294c7c.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.52d741.2] // CHECK:STDOUT: %bound_method.loc13_5.4: = bound_method %a.ref.loc13, %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc13 // CHECK:STDOUT: %impl.elem0.loc13_7: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_7: = bound_method %b.ref.loc13, %impl.elem0.loc13_7 @@ -1777,21 +1777,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.4(%a.ref.loc13, %.loc13_7.2) // CHECK:STDOUT: %a.ref.loc14: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem3.loc14: %.f24 = impl_witness_access constants.%OrderedWith.impl_witness.940, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.b31 = impl_witness_access constants.%OrderedWith.impl_witness.67f, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem3.loc14 // CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ffe884.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e28331.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.1 = specific_constant imports.%Core.GreaterOrEquivalent.489, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.097dad.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.777234.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.1 = specific_constant imports.%Core.GreaterOrEquivalent.56b, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.ad81a1.1 = name_ref GreaterOrEquivalent, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c417c3.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %a.ref.loc14, %GreaterOrEquivalent.ref.loc14 // CHECK:STDOUT: %impl.elem0.loc14_5: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %impl.elem0.loc14_5 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14_5: init %Cpp.long_long = call %bound_method.loc14_5.3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14_5 // CHECK:STDOUT: %.loc14_5.4: %Cpp.long_long = converted %b.ref.loc14, %.loc14_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ffe884.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.e28331.2] // CHECK:STDOUT: %bound_method.loc14_5.4: = bound_method %a.ref.loc14, %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 // CHECK:STDOUT: %impl.elem0.loc14_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 @@ -1801,21 +1801,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.4(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc15: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem1.loc15: %.6b0 = impl_witness_access constants.%OrderedWith.impl_witness.940, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.a86 = impl_witness_access constants.%OrderedWith.impl_witness.67f, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem1.loc15 // CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.5291ea.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.abe2fe.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.1 = specific_constant imports.%Core.LessOrEquivalent.aaf, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.82788f.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.29b20a.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.1 = specific_constant imports.%Core.LessOrEquivalent.33c, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.985924.1 = name_ref LessOrEquivalent, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1defb1.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %a.ref.loc15, %LessOrEquivalent.ref.loc15 // CHECK:STDOUT: %impl.elem0.loc15_5: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %impl.elem0.loc15_5 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc15_5: init %Cpp.long_long = call %bound_method.loc15_5.3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc15_5 // CHECK:STDOUT: %.loc15_5.4: %Cpp.long_long = converted %b.ref.loc15, %.loc15_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.5291ea.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.abe2fe.2] // CHECK:STDOUT: %bound_method.loc15_5.4: = bound_method %a.ref.loc15, %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 // CHECK:STDOUT: %impl.elem0.loc15_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_8: = bound_method %b.ref.loc15, %impl.elem0.loc15_8 @@ -1825,21 +1825,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.4(%a.ref.loc15, %.loc15_8.2) // CHECK:STDOUT: %a.ref.loc17: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.b86 = impl_witness_access constants.%EqWith.impl_witness.5f3, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.3190b1.2] +// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.639 = impl_witness_access constants.%EqWith.impl_witness.504, element0 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.72c761.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long_long.as.EqWith.impl.Equal.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.92aa2e.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.1 = specific_constant imports.%Core.Equal.357, @Cpp.long_long.as.EqWith.impl.1bc(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.3190b1.1] -// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long_long.as.EqWith.impl.Equal.type.65adc5.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.3190b1.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.1 = specific_constant imports.%Core.Equal.72f, @Cpp.long_long.as.EqWith.impl.67e(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.1] +// CHECK:STDOUT: %Equal.ref.loc17: %Cpp.long_long.as.EqWith.impl.Equal.type.bb381e.1 = name_ref Equal, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.cdd8e5.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.bound.loc17: = bound_method %a.ref.loc17, %Equal.ref.loc17 // CHECK:STDOUT: %impl.elem0.loc17_5.2: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %impl.elem0.loc17_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_5: init %Cpp.long_long = call %bound_method.loc17_5.3(%int_1.loc17) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc17_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc17_5.4: %Cpp.long_long = converted %int_1.loc17, %.loc17_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.72c761.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @Cpp.long_long.as.EqWith.impl.Equal.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.Equal.specific_fn.92aa2e.2] // CHECK:STDOUT: %bound_method.loc17_5.4: = bound_method %a.ref.loc17, %Cpp.long_long.as.EqWith.impl.Equal.specific_fn.loc17 // CHECK:STDOUT: %impl.elem0.loc17_8: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %int_1.loc17, %impl.elem0.loc17_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1849,21 +1849,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.4(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc18: %.251 = impl_witness_access constants.%EqWith.impl_witness.5f3, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.f02 = impl_witness_access constants.%EqWith.impl_witness.504, element1 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem1.loc18 // CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.ace954.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d6554.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.1 = specific_constant imports.%Core.NotEqual.dea, @Cpp.long_long.as.EqWith.impl.1bc(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long_long.as.EqWith.impl.NotEqual.type.84cb6f.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.7e6eb6.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.1 = specific_constant imports.%Core.NotEqual.6a9, @Cpp.long_long.as.EqWith.impl.67e(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %Cpp.long_long.as.EqWith.impl.NotEqual.type.d3031f.1 = name_ref NotEqual, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.b6bcc7.1] // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %a.ref.loc18, %NotEqual.ref.loc18 // CHECK:STDOUT: %impl.elem0.loc18_5: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %impl.elem0.loc18_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_5: init %Cpp.long_long = call %bound_method.loc18_5.3(%int_1.loc18) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc18_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc18_5.4: %Cpp.long_long = converted %int_1.loc18, %.loc18_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.ace954.2] +// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @Cpp.long_long.as.EqWith.impl.NotEqual.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.8d6554.2] // CHECK:STDOUT: %bound_method.loc18_5.4: = bound_method %a.ref.loc18, %Cpp.long_long.as.EqWith.impl.NotEqual.specific_fn.loc18 // CHECK:STDOUT: %impl.elem0.loc18_8: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %int_1.loc18, %impl.elem0.loc18_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1873,21 +1873,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.4(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem2.loc19: %.5d9 = impl_witness_access constants.%OrderedWith.impl_witness.31a, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.840 = impl_witness_access constants.%OrderedWith.impl_witness.18f, element2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem2.loc19 // CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.b9662b.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.7855f8.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.1 = specific_constant imports.%Core.Greater.a10, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.1] -// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long_long.as.OrderedWith.impl.Greater.type.2f531e.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.b790ce.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.1 = specific_constant imports.%Core.Greater.a90, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.1] +// CHECK:STDOUT: %Greater.ref.loc19: %Cpp.long_long.as.OrderedWith.impl.Greater.type.8c4562.1 = name_ref Greater, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.3ab52f.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %a.ref.loc19, %Greater.ref.loc19 // CHECK:STDOUT: %impl.elem0.loc19_5: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %impl.elem0.loc19_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_5: init %Cpp.long_long = call %bound_method.loc19_5.3(%int_1.loc19) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc19_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc19_5.4: %Cpp.long_long = converted %int_1.loc19, %.loc19_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.b9662b.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @Cpp.long_long.as.OrderedWith.impl.Greater.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.7855f8.2] // CHECK:STDOUT: %bound_method.loc19_5.4: = bound_method %a.ref.loc19, %Cpp.long_long.as.OrderedWith.impl.Greater.specific_fn.loc19 // CHECK:STDOUT: %impl.elem0.loc19_7: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc19_7: = bound_method %int_1.loc19, %impl.elem0.loc19_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1897,21 +1897,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.4(%a.ref.loc19, %.loc19_7.2) // CHECK:STDOUT: %a.ref.loc20: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.885 = impl_witness_access constants.%OrderedWith.impl_witness.31a, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.2] +// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.14b = impl_witness_access constants.%OrderedWith.impl_witness.18f, element0 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.938bb5.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.50db42.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long_long.as.OrderedWith.impl.Less.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.9934b4.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.1 = specific_constant imports.%Core.Less.511, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.1] -// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long_long.as.OrderedWith.impl.Less.type.ac9e3b.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.26cbb1.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.1 = specific_constant imports.%Core.Less.0ea, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.938bb5.1] +// CHECK:STDOUT: %Less.ref.loc20: %Cpp.long_long.as.OrderedWith.impl.Less.type.ccbc54.1 = name_ref Less, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.938bb5.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.bound.loc20: = bound_method %a.ref.loc20, %Less.ref.loc20 // CHECK:STDOUT: %impl.elem0.loc20_5.2: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %impl.elem0.loc20_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_5: init %Cpp.long_long = call %bound_method.loc20_5.3(%int_1.loc20) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc20_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc20_5.4: %Cpp.long_long = converted %int_1.loc20, %.loc20_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.50db42.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @Cpp.long_long.as.OrderedWith.impl.Less.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.9934b4.2] // CHECK:STDOUT: %bound_method.loc20_5.4: = bound_method %a.ref.loc20, %Cpp.long_long.as.OrderedWith.impl.Less.specific_fn.loc20 // CHECK:STDOUT: %impl.elem0.loc20_7: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc20_7: = bound_method %int_1.loc20, %impl.elem0.loc20_7 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1921,21 +1921,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.4(%a.ref.loc20, %.loc20_7.2) // CHECK:STDOUT: %a.ref.loc21: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem3.loc21: %.ea1 = impl_witness_access constants.%OrderedWith.impl_witness.31a, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.cc0 = impl_witness_access constants.%OrderedWith.impl_witness.18f, element3 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem3.loc21 // CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.662ddf.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ed5e.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.1 = specific_constant imports.%Core.GreaterOrEquivalent.489, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.23f245.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1b92ea.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.1 = specific_constant imports.%Core.GreaterOrEquivalent.56b, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.9ac5a4.1 = name_ref GreaterOrEquivalent, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.f21cb0.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %a.ref.loc21, %GreaterOrEquivalent.ref.loc21 // CHECK:STDOUT: %impl.elem0.loc21_5: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %impl.elem0.loc21_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_5: init %Cpp.long_long = call %bound_method.loc21_5.3(%int_1.loc21) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc21_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc21_5.4: %Cpp.long_long = converted %int_1.loc21, %.loc21_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.662ddf.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.32ed5e.2] // CHECK:STDOUT: %bound_method.loc21_5.4: = bound_method %a.ref.loc21, %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 // CHECK:STDOUT: %impl.elem0.loc21_8: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc21_8: = bound_method %int_1.loc21, %impl.elem0.loc21_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1945,21 +1945,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.4(%a.ref.loc21, %.loc21_8.2) // CHECK:STDOUT: %a.ref.loc22: %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem1.loc22: %.da4 = impl_witness_access constants.%OrderedWith.impl_witness.31a, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.038 = impl_witness_access constants.%OrderedWith.impl_witness.18f, element1 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.2] // CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %a.ref.loc22, %impl.elem1.loc22 // CHECK:STDOUT: %ImplicitAs.facet.loc22: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet.d52] // CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet.loc22 [concrete = constants.%ImplicitAs.facet.d52] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b1c4c5.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4b3629.1] // CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %a.ref.loc22, %specific_fn.loc22 -// CHECK:STDOUT: %.loc22_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.1 = specific_constant imports.%Core.LessOrEquivalent.aaf, @Cpp.long_long.as.OrderedWith.impl.ef6(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.e236e2.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.50ecf5.1] +// CHECK:STDOUT: %.loc22_5.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.1 = specific_constant imports.%Core.LessOrEquivalent.33c, @Cpp.long_long.as.OrderedWith.impl.79a(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.cb98c7.1 = name_ref LessOrEquivalent, %.loc22_5.2 [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.451cbd.1] // CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %a.ref.loc22, %LessOrEquivalent.ref.loc22 // CHECK:STDOUT: %impl.elem0.loc22_5: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %impl.elem0.loc22_5 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5: init %Cpp.long_long = call %bound_method.loc22_5.3(%int_1.loc22) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc22_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc22_5.4: %Cpp.long_long = converted %int_1.loc22, %.loc22_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.b1c4c5.2] +// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2(constants.%ImplicitAs.facet.d52) [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4b3629.2] // CHECK:STDOUT: %bound_method.loc22_5.4: = bound_method %a.ref.loc22, %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 // CHECK:STDOUT: %impl.elem0.loc22_8: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc22_8: = bound_method %int_1.loc22, %impl.elem0.loc22_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] @@ -1989,165 +1989,165 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.092: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %EqWith.type.4be: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %T.ea5: %ImplicitAs.type.a03 = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.3, @T.binding.as_type.as.EqWith.impl.b07(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.83a9a5.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.4, @T.binding.as_type.as.EqWith.impl.b07(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.83a9a5.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.3, @T.binding.as_type.as.EqWith.impl.b07(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bbf235.1: %T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.4, @T.binding.as_type.as.EqWith.impl.b07(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bbf235.2: %T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.a66908.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.53c(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.8d0b9b.1: %T.as_type.as.EqWith.impl.NotEqual.type.a66908.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.a66908.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.53c(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.8d0b9b.2: %T.as_type.as.EqWith.impl.NotEqual.type.a66908.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6b9708.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.53c(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.40c405.1: %T.as_type.as.EqWith.impl.Equal.type.6b9708.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6b9708.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.53c(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.40c405.2: %T.as_type.as.EqWith.impl.Equal.type.6b9708.2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.1b3: = impl_witness imports.%ImplicitAs.impl_witness_table.b19 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.c59: %ImplicitAs.type.a03 = facet_value %i64, (%ImplicitAs.impl_witness.1b3) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.52e: = impl_witness imports.%EqWith.impl_witness_table.7e5, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.4, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.971403.1: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.4, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.3, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.971403.2: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.3, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.71f: %EqWith.type.4be = facet_value %i64, (%EqWith.impl_witness.52e) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.7b1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.71f) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.dfc: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.71f) [concrete] -// CHECK:STDOUT: %.692: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.7b1, %EqWith.facet.71f [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.14854f.1: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.971403.2, @T.binding.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.14854f.2: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.971403.1, @T.binding.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.cec: = impl_witness imports.%EqWith.impl_witness_table.c76, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.6609ee.1: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.078723.1: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.6609ee.2: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.078723.2: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.97b: %EqWith.type.4be = facet_value %i64, (%EqWith.impl_witness.cec) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.f4e: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.97b) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a3f: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.97b) [concrete] +// CHECK:STDOUT: %.5a4: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.f4e, %EqWith.facet.97b [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.92a53c.1: = specific_function %T.as_type.as.EqWith.impl.Equal.6609ee.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.92a53c.2: = specific_function %T.as_type.as.EqWith.impl.Equal.6609ee.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.653: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %.cb1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.653, %ImplicitAs.facet.c59 [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %.1ce: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.dfc, %EqWith.facet.71f [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.b0f056.1: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.2, @T.binding.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.b0f056.2: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.1, @T.binding.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.573: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a3f, %EqWith.facet.97b [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.230234.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.078723.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.230234.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.078723.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %OrderedWith.type.65e: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.06285b.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.06285b.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.3, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.07eebf.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.4, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.07eebf.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.d63604.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.d63604.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.2 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.3, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.31696a.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.1 = struct_value () [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.4, @T.binding.as_type.as.OrderedWith.impl.895(%T.ea5) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.31696a.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.2 = struct_value () [symbolic] -// CHECK:STDOUT: %OrderedWith.impl_witness.5fb: = impl_witness imports.%OrderedWith.impl_witness_table.8cd, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.4846a7.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.356766.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.4846a7.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.356766.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.2d0: %OrderedWith.type.65e = facet_value %i64, (%OrderedWith.impl_witness.5fb) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.ee5: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2d0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.9f3: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2d0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.c5a: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2d0) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.3ba: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.2d0) [concrete] -// CHECK:STDOUT: %.c4a: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.c5a, %OrderedWith.facet.2d0 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.fc67f6.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.356766.2, @T.binding.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.fc67f6.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.356766.1, @T.binding.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.468: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.ee5, %OrderedWith.facet.2d0 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.ab0306.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.4846a7.2, @T.binding.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.ab0306.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.4846a7.1, @T.binding.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.a3a: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.3ba, %OrderedWith.facet.2d0 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.b93d5d.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.2, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.b93d5d.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.1, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %.ee9: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.9f3, %OrderedWith.facet.2d0 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.67339b.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.2, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.67339b.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.1, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %EqWith.impl_witness.a59: = impl_witness imports.%EqWith.impl_witness_table.7e5, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.1: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.4, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.1: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.1: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.4, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.1: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.2: type = fn_type @T.binding.as_type.as.EqWith.impl.Equal.3, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.2: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.2: type = fn_type @T.binding.as_type.as.EqWith.impl.NotEqual.3, @T.binding.as_type.as.EqWith.impl.b07(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.2: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.2 = struct_value () [concrete] -// CHECK:STDOUT: %EqWith.facet.db2: %EqWith.type.4be = facet_value Core.IntLiteral, (%EqWith.impl_witness.a59) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.634: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.db2) [concrete] -// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.297: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.db2) [concrete] -// CHECK:STDOUT: %.b72: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.634, %EqWith.facet.db2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.e0853e.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.1: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.2, @T.binding.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.1699f5.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.e0853e.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.2: = specific_function %T.binding.as_type.as.EqWith.impl.Equal.3cf73d.1, @T.binding.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.1699f5.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.2 [concrete] -// CHECK:STDOUT: %.c36: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.297, %EqWith.facet.db2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.0bb6c5.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.1: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.2, @T.binding.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.7aede5.1: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.0bb6c5.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.2: = specific_function %T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.1, @T.binding.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.7aede5.2: = bound_method %int_1.5b8, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.2 [concrete] -// CHECK:STDOUT: %OrderedWith.impl_witness.aae: = impl_witness imports.%OrderedWith.impl_witness_table.8cd, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.1: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.1: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.1: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.1: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.1: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.1 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Less.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.2: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.2: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.Greater.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.2: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.2 = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.2: type = fn_type @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.binding.as_type.as.OrderedWith.impl.895(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.2: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.2 = struct_value () [concrete] -// CHECK:STDOUT: %OrderedWith.facet.88a: %OrderedWith.type.65e = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.aae) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.d22: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.88a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.2d9: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.88a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.3ab: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.88a) [concrete] -// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.907: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.88a) [concrete] -// CHECK:STDOUT: %.dee: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.3ab, %OrderedWith.facet.88a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.483e05.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.2, @T.binding.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.a32da1.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.483e05.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.1, @T.binding.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.a32da1.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.2 [concrete] -// CHECK:STDOUT: %.97f: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.d22, %OrderedWith.facet.88a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.66e1cb.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.2, @T.binding.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.8f808d.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.66e1cb.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.1, @T.binding.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.8f808d.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.2 [concrete] -// CHECK:STDOUT: %.d57: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.907, %OrderedWith.facet.88a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.b10f47.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.2, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.2c548f.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.b10f47.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.1, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.2c548f.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.2 [concrete] -// CHECK:STDOUT: %.ba2: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.2d9, %OrderedWith.facet.88a [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.0b467c.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.2 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.1: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.2, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.caef99.1: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.0b467c.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.1 [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.2: = specific_function %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.1, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.d52) [concrete] -// CHECK:STDOUT: %bound_method.caef99.2: = bound_method %int_1.5b8, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9b70f1.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9b70f1.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.a3a747.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.0253af.1: %T.as_type.as.OrderedWith.impl.Greater.type.a3a747.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.a3a747.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.0253af.2: %T.as_type.as.OrderedWith.impl.Greater.type.a3a747.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b78dc.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b78dc.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.2 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.09e4bc.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.621894.1: %T.as_type.as.OrderedWith.impl.Less.type.09e4bc.1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.09e4bc.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.144(%T.ea5) [symbolic] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.621894.2: %T.as_type.as.OrderedWith.impl.Less.type.09e4bc.2 = struct_value () [symbolic] +// CHECK:STDOUT: %OrderedWith.impl_witness.413: = impl_witness imports.%OrderedWith.impl_witness_table.426, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.953748.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.7ceb53.1: %T.as_type.as.OrderedWith.impl.Less.type.953748.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.6a026c.1: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.953748.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.7ceb53.2: %T.as_type.as.OrderedWith.impl.Less.type.953748.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.6a026c.2: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.35d: %OrderedWith.type.65e = facet_value %i64, (%OrderedWith.impl_witness.413) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.ce0: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.35d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.1ea: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.35d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.aa0: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.35d) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.d9a: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.35d) [concrete] +// CHECK:STDOUT: %.638: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.aa0, %OrderedWith.facet.35d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.e426c5.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.6a026c.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.e426c5.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.6a026c.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.171: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.ce0, %OrderedWith.facet.35d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.26328c.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.7ceb53.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.26328c.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.7ceb53.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.205: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.d9a, %OrderedWith.facet.35d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.cf5ee0.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.cf5ee0.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %.e34: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.1ea, %OrderedWith.facet.35d [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ee0adf.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ee0adf.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %EqWith.impl_witness.360: = impl_witness imports.%EqWith.impl_witness_table.c76, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.414f7d.1: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.4c54ab.1: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.414f7d.2: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.53c(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.4c54ab.2: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.2 = struct_value () [concrete] +// CHECK:STDOUT: %EqWith.facet.f7e: %EqWith.type.4be = facet_value Core.IntLiteral, (%EqWith.impl_witness.360) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.aba: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.f7e) [concrete] +// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.c66: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.f7e) [concrete] +// CHECK:STDOUT: %.deb: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.aba, %EqWith.facet.f7e [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.38ba67.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.414f7d.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.1: = specific_function %T.as_type.as.EqWith.impl.Equal.414f7d.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.965a6d.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.38ba67.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.414f7d.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.2: = specific_function %T.as_type.as.EqWith.impl.Equal.414f7d.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.965a6d.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.2 [concrete] +// CHECK:STDOUT: %.5ff: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.c66, %EqWith.facet.f7e [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.b78a35.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.4c54ab.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.1: = specific_function %T.as_type.as.EqWith.impl.NotEqual.4c54ab.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.525f58.1: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.b78a35.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.4c54ab.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.2: = specific_function %T.as_type.as.EqWith.impl.NotEqual.4c54ab.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.525f58.2: = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.2 [concrete] +// CHECK:STDOUT: %OrderedWith.impl_witness.a2b: = impl_witness imports.%OrderedWith.impl_witness_table.426, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.5e9a29.1: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.965505.1: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.1 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.5e9a29.2: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.965505.2: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.2 = struct_value () [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.144(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.2 = struct_value () [concrete] +// CHECK:STDOUT: %OrderedWith.facet.04b: %OrderedWith.type.65e = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.a2b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.c57: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.04b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.LessOrEquivalent.type.d75: type = fn_type @OrderedWith.WithSelf.LessOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.04b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.2b9: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.04b) [concrete] +// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.50d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.04b) [concrete] +// CHECK:STDOUT: %.0a3: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.2b9, %OrderedWith.facet.04b [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.d28062.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.965505.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.1: = specific_function %T.as_type.as.OrderedWith.impl.Greater.965505.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.5f9ea0.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.d28062.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.965505.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.2: = specific_function %T.as_type.as.OrderedWith.impl.Greater.965505.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.5f9ea0.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.2 [concrete] +// CHECK:STDOUT: %.add: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.c57, %OrderedWith.facet.04b [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.0457c8.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.5e9a29.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.1: = specific_function %T.as_type.as.OrderedWith.impl.Less.5e9a29.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.c7f934.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.0457c8.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.5e9a29.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.2: = specific_function %T.as_type.as.OrderedWith.impl.Less.5e9a29.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.c7f934.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.2 [concrete] +// CHECK:STDOUT: %.679: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.50d, %OrderedWith.facet.04b [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.4e52dc.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.1: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.0a59bb.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.4e52dc.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.2: = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.0a59bb.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.2 [concrete] +// CHECK:STDOUT: %.adc: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.d75, %OrderedWith.facet.04b [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.990ba9.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.2 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.1: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.6f26dc.1: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.990ba9.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.1 [concrete] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.2: = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.d52) [concrete] +// CHECK:STDOUT: %bound_method.6f26dc.2: = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.2 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -2157,22 +2157,22 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.d64: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.aba = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] -// CHECK:STDOUT: %Core.import_ref.eb5: @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.Equal.type.2 (%T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.Equal.2 (constants.%T.binding.as_type.as.EqWith.impl.Equal.bbf235.1)] -// CHECK:STDOUT: %Core.import_ref.597: @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.NotEqual.type.2 (%T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.binding.as_type.as.EqWith.impl.NotEqual.83a9a5.1)] -// CHECK:STDOUT: %EqWith.impl_witness_table.7e5 = impl_witness_table (%Core.import_ref.eb5, %Core.import_ref.597), @T.binding.as_type.as.EqWith.impl.b07 [concrete] -// CHECK:STDOUT: %Core.NotEqual.421: @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.NotEqual.type.1 (%T.binding.as_type.as.EqWith.impl.NotEqual.type.d96a78.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.binding.as_type.as.EqWith.impl.NotEqual.83a9a5.2)] -// CHECK:STDOUT: %Core.Equal.d94: @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.Equal.type.1 (%T.binding.as_type.as.EqWith.impl.Equal.type.066d1d.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.binding.as_type.as.EqWith.impl.b07.%T.binding.as_type.as.EqWith.impl.Equal.1 (constants.%T.binding.as_type.as.EqWith.impl.Equal.bbf235.2)] +// CHECK:STDOUT: %Core.import_ref.7de: @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.6b9708.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.40c405.1)] +// CHECK:STDOUT: %Core.import_ref.b0a: @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.a66908.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.8d0b9b.1)] +// CHECK:STDOUT: %EqWith.impl_witness_table.c76 = impl_witness_table (%Core.import_ref.7de, %Core.import_ref.b0a), @T.as_type.as.EqWith.impl.53c [concrete] +// CHECK:STDOUT: %Core.NotEqual.728: @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.a66908.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.8d0b9b.2)] +// CHECK:STDOUT: %Core.Equal.dca: @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.6b9708.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.53c.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.40c405.2)] // CHECK:STDOUT: %Core.import_ref.4f4: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.b19 = impl_witness_table (%Core.import_ref.4f4), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.d4b: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Less.type.2 (%T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Less.2 (constants.%T.binding.as_type.as.OrderedWith.impl.Less.31696a.1)] -// CHECK:STDOUT: %Core.import_ref.54d: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.d63604.1)] -// CHECK:STDOUT: %Core.import_ref.aa8: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Greater.type.2 (%T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.binding.as_type.as.OrderedWith.impl.Greater.07eebf.1)] -// CHECK:STDOUT: %Core.import_ref.240: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.06285b.1)] -// CHECK:STDOUT: %OrderedWith.impl_witness_table.8cd = impl_witness_table (%Core.import_ref.d4b, %Core.import_ref.54d, %Core.import_ref.aa8, %Core.import_ref.240), @T.binding.as_type.as.OrderedWith.impl.895 [concrete] -// CHECK:STDOUT: %Core.GreaterOrEquivalent.b91: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.b7b4dd.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.06285b.2)] -// CHECK:STDOUT: %Core.Greater.cff: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Greater.type.1 (%T.binding.as_type.as.OrderedWith.impl.Greater.type.1733df.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.binding.as_type.as.OrderedWith.impl.Greater.07eebf.2)] -// CHECK:STDOUT: %Core.LessOrEquivalent.792: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bfda3a.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.d63604.2)] -// CHECK:STDOUT: %Core.Less.aac: @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Less.type.1 (%T.binding.as_type.as.OrderedWith.impl.Less.type.4623e2.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.binding.as_type.as.OrderedWith.impl.895.%T.binding.as_type.as.OrderedWith.impl.Less.1 (constants.%T.binding.as_type.as.OrderedWith.impl.Less.31696a.2)] +// CHECK:STDOUT: %Core.import_ref.fa6e: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.09e4bc.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.621894.1)] +// CHECK:STDOUT: %Core.import_ref.1b07: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b78dc.1)] +// CHECK:STDOUT: %Core.import_ref.948: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.a3a747.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.0253af.1)] +// CHECK:STDOUT: %Core.import_ref.ba48: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9b70f1.1)] +// CHECK:STDOUT: %OrderedWith.impl_witness_table.426 = impl_witness_table (%Core.import_ref.fa6e, %Core.import_ref.1b07, %Core.import_ref.948, %Core.import_ref.ba48), @T.as_type.as.OrderedWith.impl.144 [concrete] +// CHECK:STDOUT: %Core.GreaterOrEquivalent.4ff: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6a2ccf.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.9b70f1.2)] +// CHECK:STDOUT: %Core.Greater.5ce: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.a3a747.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.0253af.2)] +// CHECK:STDOUT: %Core.LessOrEquivalent.d58: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.6b5779.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.6b78dc.2)] +// CHECK:STDOUT: %Core.Less.030: @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.09e4bc.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.144.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.621894.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongRightSide() { @@ -2194,208 +2194,208 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: %Cpp.long_long = value_binding a, %.loc9_26.2 // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc10: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc10_5: %.692 = impl_witness_access constants.%EqWith.impl_witness.52e, element0 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.971403.2] +// CHECK:STDOUT: %impl.elem0.loc10_5: %.5a4 = impl_witness_access constants.%EqWith.impl_witness.cec, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6609ee.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %b.ref.loc10, %impl.elem0.loc10_5 -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.binding.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.14854f.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.92a53c.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %b.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.1 = specific_constant imports.%Core.Equal.d94, @T.binding.as_type.as.EqWith.impl.b07(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.971403.1] -// CHECK:STDOUT: %Equal.ref.loc10: %T.binding.as_type.as.EqWith.impl.Equal.type.5ab1af.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.971403.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.binding.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.14854f.2] -// CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc10 +// CHECK:STDOUT: %.loc10_5: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.1 = specific_constant imports.%Core.Equal.dca, @T.as_type.as.EqWith.impl.53c(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6609ee.1] +// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.f1fa7b.1 = name_ref Equal, %.loc10_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.6609ee.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc10: = bound_method %b.ref.loc10, %Equal.ref.loc10 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.92a53c.2] +// CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10 // CHECK:STDOUT: %impl.elem0.loc10_3: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_3: = bound_method %b.ref.loc10, %impl.elem0.loc10_3 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10: init %Cpp.long_long = call %bound_method.loc10_3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10 // CHECK:STDOUT: %.loc10_3.2: %Cpp.long_long = converted %b.ref.loc10, %.loc10_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc10: init bool = call %bound_method.loc10_5.3(%.loc10_3.2, %a.ref.loc10) // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc11: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc11: %.1ce = impl_witness_access constants.%EqWith.impl_witness.52e, element1 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.2] +// CHECK:STDOUT: %impl.elem1.loc11: %.573 = impl_witness_access constants.%EqWith.impl_witness.cec, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.078723.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %b.ref.loc11, %impl.elem1.loc11 -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.binding.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.b0f056.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.230234.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %b.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.1 = specific_constant imports.%Core.NotEqual.421, @T.binding.as_type.as.EqWith.impl.b07(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.1] -// CHECK:STDOUT: %NotEqual.ref.loc11: %T.binding.as_type.as.EqWith.impl.NotEqual.type.7cb54d.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bd87a0.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.binding.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.b0f056.2] -// CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 +// CHECK:STDOUT: %.loc11_5: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.1 = specific_constant imports.%Core.NotEqual.728, @T.as_type.as.EqWith.impl.53c(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.078723.1] +// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.fc47d6.1 = name_ref NotEqual, %.loc11_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.078723.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc11: = bound_method %b.ref.loc11, %NotEqual.ref.loc11 +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.230234.2] +// CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11 // CHECK:STDOUT: %impl.elem0.loc11: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_3: = bound_method %b.ref.loc11, %impl.elem0.loc11 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11: init %Cpp.long_long = call %bound_method.loc11_3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11 // CHECK:STDOUT: %.loc11_3.2: %Cpp.long_long = converted %b.ref.loc11, %.loc11_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc11: init bool = call %bound_method.loc11_5.3(%.loc11_3.2, %a.ref.loc11) // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc12: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc12: %.c4a = impl_witness_access constants.%OrderedWith.impl_witness.5fb, element2 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.356766.2] +// CHECK:STDOUT: %impl.elem2.loc12: %.638 = impl_witness_access constants.%OrderedWith.impl_witness.413, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.6a026c.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %b.ref.loc12, %impl.elem2.loc12 -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.binding.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.fc67f6.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.e426c5.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %b.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.1 = specific_constant imports.%Core.Greater.cff, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.356766.1] -// CHECK:STDOUT: %Greater.ref.loc12: %T.binding.as_type.as.OrderedWith.impl.Greater.type.125113.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.356766.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.binding.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.fc67f6.2] -// CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 +// CHECK:STDOUT: %.loc12_5: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.1 = specific_constant imports.%Core.Greater.5ce, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.6a026c.1] +// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.1b4ba9.1 = name_ref Greater, %.loc12_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.6a026c.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc12: = bound_method %b.ref.loc12, %Greater.ref.loc12 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.e426c5.2] +// CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12 // CHECK:STDOUT: %impl.elem0.loc12: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_3: = bound_method %b.ref.loc12, %impl.elem0.loc12 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12: init %Cpp.long_long = call %bound_method.loc12_3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12 // CHECK:STDOUT: %.loc12_3.2: %Cpp.long_long = converted %b.ref.loc12, %.loc12_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc12: init bool = call %bound_method.loc12_5.3(%.loc12_3.2, %a.ref.loc12) // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc13: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc13_5: %.468 = impl_witness_access constants.%OrderedWith.impl_witness.5fb, element0 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.4846a7.2] +// CHECK:STDOUT: %impl.elem0.loc13_5: %.171 = impl_witness_access constants.%OrderedWith.impl_witness.413, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7ceb53.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %b.ref.loc13, %impl.elem0.loc13_5 -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.binding.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.ab0306.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.26328c.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %b.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.1 = specific_constant imports.%Core.Less.aac, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.4846a7.1] -// CHECK:STDOUT: %Less.ref.loc13: %T.binding.as_type.as.OrderedWith.impl.Less.type.8c7c29.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.4846a7.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.binding.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.ab0306.2] -// CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 +// CHECK:STDOUT: %.loc13_5: %T.as_type.as.OrderedWith.impl.Less.type.953748.1 = specific_constant imports.%Core.Less.030, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7ceb53.1] +// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.953748.1 = name_ref Less, %.loc13_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.7ceb53.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc13: = bound_method %b.ref.loc13, %Less.ref.loc13 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.26328c.2] +// CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13 // CHECK:STDOUT: %impl.elem0.loc13_3: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_3: = bound_method %b.ref.loc13, %impl.elem0.loc13_3 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13: init %Cpp.long_long = call %bound_method.loc13_3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13 // CHECK:STDOUT: %.loc13_3.2: %Cpp.long_long = converted %b.ref.loc13, %.loc13_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc13: init bool = call %bound_method.loc13_5.3(%.loc13_3.2, %a.ref.loc13) // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc14: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc14: %.a3a = impl_witness_access constants.%OrderedWith.impl_witness.5fb, element3 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.2] +// CHECK:STDOUT: %impl.elem3.loc14: %.205 = impl_witness_access constants.%OrderedWith.impl_witness.413, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %b.ref.loc14, %impl.elem3.loc14 -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.b93d5d.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.cf5ee0.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %b.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.1 = specific_constant imports.%Core.GreaterOrEquivalent.b91, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.6d7684.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.7a66f5.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.b93d5d.2] -// CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 +// CHECK:STDOUT: %.loc14_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.1 = specific_constant imports.%Core.GreaterOrEquivalent.4ff, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.148554.1 = name_ref GreaterOrEquivalent, %.loc14_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1e5e34.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.cf5ee0.2] +// CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14 // CHECK:STDOUT: %impl.elem0.loc14: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_3: = bound_method %b.ref.loc14, %impl.elem0.loc14 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14: init %Cpp.long_long = call %bound_method.loc14_3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14 // CHECK:STDOUT: %.loc14_3.2: %Cpp.long_long = converted %b.ref.loc14, %.loc14_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc14: init bool = call %bound_method.loc14_5.3(%.loc14_3.2, %a.ref.loc14) // CHECK:STDOUT: %b.ref.loc15: %i64 = name_ref b, %b // CHECK:STDOUT: %a.ref.loc15: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc15: %.ee9 = impl_witness_access constants.%OrderedWith.impl_witness.5fb, element1 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.2] +// CHECK:STDOUT: %impl.elem1.loc15: %.e34 = impl_witness_access constants.%OrderedWith.impl_witness.413, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %b.ref.loc15, %impl.elem1.loc15 -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.67339b.1] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ee0adf.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %b.ref.loc15, %specific_fn.loc15 -// CHECK:STDOUT: %.loc15_5: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.1 = specific_constant imports.%Core.LessOrEquivalent.792, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.bba1e4.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.ebfce3.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.67339b.2] -// CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 +// CHECK:STDOUT: %.loc15_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.1 = specific_constant imports.%Core.LessOrEquivalent.d58, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.43e988.1 = name_ref LessOrEquivalent, %.loc15_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.fdb62b.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15 +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.c59) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ee0adf.2] +// CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %b.ref.loc15, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15 // CHECK:STDOUT: %impl.elem0.loc15: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc15_3: = bound_method %b.ref.loc15, %impl.elem0.loc15 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.long_long = call %bound_method.loc15_3(%b.ref.loc15) // CHECK:STDOUT: %.loc15_3.1: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc15 // CHECK:STDOUT: %.loc15_3.2: %Cpp.long_long = converted %b.ref.loc15, %.loc15_3.1 -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc15: init bool = call %bound_method.loc15_5.3(%.loc15_3.2, %a.ref.loc15) // CHECK:STDOUT: %int_1.loc17: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc17: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc17_5: %.b72 = impl_witness_access constants.%EqWith.impl_witness.a59, element0 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.3cf73d.2] -// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.bound.e0853e.1] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.binding.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.1] -// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.1699f5.1] -// CHECK:STDOUT: %.loc17_5: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.1 = specific_constant imports.%Core.Equal.d94, @T.binding.as_type.as.EqWith.impl.b07(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.3cf73d.1] -// CHECK:STDOUT: %Equal.ref.loc17: %T.binding.as_type.as.EqWith.impl.Equal.type.e71550.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.3cf73d.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.bound.e0853e.2] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.binding.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.Equal.specific_fn.54d028.2] -// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.binding.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.1699f5.2] +// CHECK:STDOUT: %impl.elem0.loc17_5: %.deb = impl_witness_access constants.%EqWith.impl_witness.360, element0 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.414f7d.2] +// CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %int_1.loc17, %impl.elem0.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.38ba67.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.1] +// CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.965a6d.1] +// CHECK:STDOUT: %.loc17_5: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.1 = specific_constant imports.%Core.Equal.dca, @T.as_type.as.EqWith.impl.53c(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.414f7d.1] +// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.f6c0c8.1 = name_ref Equal, %.loc17_5 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.414f7d.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.38ba67.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.d032e7.2] +// CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.965a6d.2] // CHECK:STDOUT: %impl.elem0.loc17_3: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc17_3: = bound_method %int_1.loc17, %impl.elem0.loc17_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17: init %Cpp.long_long = call %bound_method.loc17_3(%int_1.loc17) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc17_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc17 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc17_3.2: %Cpp.long_long = converted %int_1.loc17, %.loc17_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.call.loc17: init bool = call %bound_method.loc17_5.3(%.loc17_3.2, %a.ref.loc17) // CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc18: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc18: %.c36 = impl_witness_access constants.%EqWith.impl_witness.a59, element1 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.2] -// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bound.0bb6c5.1] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.binding.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.1] -// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.7aede5.1] -// CHECK:STDOUT: %.loc18_5: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.1 = specific_constant imports.%Core.NotEqual.421, @T.binding.as_type.as.EqWith.impl.b07(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.1] -// CHECK:STDOUT: %NotEqual.ref.loc18: %T.binding.as_type.as.EqWith.impl.NotEqual.type.635206.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.55dccd.1] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.bound.0bb6c5.2] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.binding.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.d399fc.2] -// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.binding.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.7aede5.2] +// CHECK:STDOUT: %impl.elem1.loc18: %.5ff = impl_witness_access constants.%EqWith.impl_witness.360, element1 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.4c54ab.2] +// CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %int_1.loc18, %impl.elem1.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.b78a35.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.1] +// CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.525f58.1] +// CHECK:STDOUT: %.loc18_5: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.1 = specific_constant imports.%Core.NotEqual.728, @T.as_type.as.EqWith.impl.53c(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.4c54ab.1] +// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.1072c0.1 = name_ref NotEqual, %.loc18_5 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.4c54ab.1] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.b78a35.2] +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.9df0c2.2] +// CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.525f58.2] // CHECK:STDOUT: %impl.elem0.loc18: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc18_3: = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18: init %Cpp.long_long = call %bound_method.loc18_3(%int_1.loc18) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc18_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc18 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc18_3.2: %Cpp.long_long = converted %int_1.loc18, %.loc18_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) +// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.call.loc18: init bool = call %bound_method.loc18_5.3(%.loc18_3.2, %a.ref.loc18) // CHECK:STDOUT: %int_1.loc19: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc19: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem2.loc19: %.dee = impl_witness_access constants.%OrderedWith.impl_witness.aae, element2 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.2] -// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.bound.483e05.1] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.binding.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.1] -// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.a32da1.1] -// CHECK:STDOUT: %.loc19_5: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.1 = specific_constant imports.%Core.Greater.cff, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.1] -// CHECK:STDOUT: %Greater.ref.loc19: %T.binding.as_type.as.OrderedWith.impl.Greater.type.e76509.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.9aafa8.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.bound.483e05.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.binding.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.d2b07b.2] -// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.binding.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.a32da1.2] +// CHECK:STDOUT: %impl.elem2.loc19: %.0a3 = impl_witness_access constants.%OrderedWith.impl_witness.a2b, element2 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.965505.2] +// CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %int_1.loc19, %impl.elem2.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.d28062.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.1] +// CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.5f9ea0.1] +// CHECK:STDOUT: %.loc19_5: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.1 = specific_constant imports.%Core.Greater.5ce, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.965505.1] +// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.9a9030.1 = name_ref Greater, %.loc19_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.965505.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.d28062.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.4b11f0.2] +// CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.5f9ea0.2] // CHECK:STDOUT: %impl.elem0.loc19: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc19_3: = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19: init %Cpp.long_long = call %bound_method.loc19_3(%int_1.loc19) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc19_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc19 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc19_3.2: %Cpp.long_long = converted %int_1.loc19, %.loc19_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.call.loc19: init bool = call %bound_method.loc19_5.3(%.loc19_3.2, %a.ref.loc19) // CHECK:STDOUT: %int_1.loc20: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc20: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem0.loc20_5: %.97f = impl_witness_access constants.%OrderedWith.impl_witness.aae, element0 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.2] -// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.bound.66e1cb.1] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.binding.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.1] -// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.8f808d.1] -// CHECK:STDOUT: %.loc20_5: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.1 = specific_constant imports.%Core.Less.aac, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.1] -// CHECK:STDOUT: %Less.ref.loc20: %T.binding.as_type.as.OrderedWith.impl.Less.type.987d0b.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.e8fdd7.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.bound.66e1cb.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.binding.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.06ee45.2] -// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.binding.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.8f808d.2] +// CHECK:STDOUT: %impl.elem0.loc20_5: %.add = impl_witness_access constants.%OrderedWith.impl_witness.a2b, element0 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.5e9a29.2] +// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %int_1.loc20, %impl.elem0.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.0457c8.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.1] +// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.c7f934.1] +// CHECK:STDOUT: %.loc20_5: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.1 = specific_constant imports.%Core.Less.030, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.5e9a29.1] +// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.23fbda.1 = name_ref Less, %.loc20_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.5e9a29.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.0457c8.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.e2692e.2] +// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.c7f934.2] // CHECK:STDOUT: %impl.elem0.loc20_3: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc20_3: = bound_method %int_1.loc20, %impl.elem0.loc20_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20: init %Cpp.long_long = call %bound_method.loc20_3(%int_1.loc20) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc20_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc20 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc20_3.2: %Cpp.long_long = converted %int_1.loc20, %.loc20_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.call.loc20: init bool = call %bound_method.loc20_5.3(%.loc20_3.2, %a.ref.loc20) // CHECK:STDOUT: %int_1.loc21: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc21: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem3.loc21: %.d57 = impl_witness_access constants.%OrderedWith.impl_witness.aae, element3 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.2] -// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.b10f47.1] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.1] -// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.2c548f.1] -// CHECK:STDOUT: %.loc21_5: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.1 = specific_constant imports.%Core.GreaterOrEquivalent.b91, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.1] -// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.fc9354.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.755c9d.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.b10f47.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.ca5627.2] -// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.2c548f.2] +// CHECK:STDOUT: %impl.elem3.loc21: %.679 = impl_witness_access constants.%OrderedWith.impl_witness.a2b, element3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.2] +// CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %int_1.loc21, %impl.elem3.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.4e52dc.1] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.1] +// CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.0a59bb.1] +// CHECK:STDOUT: %.loc21_5: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.1 = specific_constant imports.%Core.GreaterOrEquivalent.4ff, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.1] +// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.dbab37.1 = name_ref GreaterOrEquivalent, %.loc21_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.adab83.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.4e52dc.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.95aa5c.2] +// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.0a59bb.2] // CHECK:STDOUT: %impl.elem0.loc21: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc21_3: = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21: init %Cpp.long_long = call %bound_method.loc21_3(%int_1.loc21) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc21_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc21 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc21_3.2: %Cpp.long_long = converted %int_1.loc21, %.loc21_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.call.loc21: init bool = call %bound_method.loc21_5.3(%.loc21_3.2, %a.ref.loc21) // CHECK:STDOUT: %int_1.loc22: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] // CHECK:STDOUT: %a.ref.loc22: %Cpp.long_long = name_ref a, %a -// CHECK:STDOUT: %impl.elem1.loc22: %.ba2 = impl_witness_access constants.%OrderedWith.impl_witness.aae, element1 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.2] -// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.0b467c.1] -// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.1] -// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.caef99.1] -// CHECK:STDOUT: %.loc22_5: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.1 = specific_constant imports.%Core.LessOrEquivalent.792, @T.binding.as_type.as.OrderedWith.impl.895(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.1] -// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.type.39171f.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.9bb133.1] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.0b467c.2] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.2d74e0.2] -// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.caef99.2] +// CHECK:STDOUT: %impl.elem1.loc22: %.adc = impl_witness_access constants.%OrderedWith.impl_witness.a2b, element1 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.2] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %int_1.loc22, %impl.elem1.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.990ba9.1] +// CHECK:STDOUT: %specific_fn.loc22: = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.1] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.6f26dc.1] +// CHECK:STDOUT: %.loc22_5: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.1 = specific_constant imports.%Core.LessOrEquivalent.d58, @T.as_type.as.OrderedWith.impl.144(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.1] +// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.be1fca.1 = name_ref LessOrEquivalent, %.loc22_5 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.12e809.1] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.990ba9.2] +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.d52) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.4bb198.2] +// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.6f26dc.2] // CHECK:STDOUT: %impl.elem0.loc22: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %bound_method.loc22_3: = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.aae] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22: init %Cpp.long_long = call %bound_method.loc22_3(%int_1.loc22) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc22_3.1: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc22 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc22_3.2: %Cpp.long_long = converted %int_1.loc22, %.loc22_3.1 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %T.binding.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) +// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.call.loc22: init bool = call %bound_method.loc22_5.3(%.loc22_3.2, %a.ref.loc22) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -2411,8 +2411,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %ImplicitAs.type.a03: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d: type = fn_type @T.binding.as_type.as.ImplicitAs.impl.Convert, @T.binding.as_type.as.ImplicitAs.impl(%T.035) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.ImplicitAs.impl.Convert.19b: %T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.type.e0a: type = fn_type @T.as_type.as.ImplicitAs.impl.Convert, @T.as_type.as.ImplicitAs.impl(%T.035) [symbolic] +// CHECK:STDOUT: %T.as_type.as.ImplicitAs.impl.Convert.3a8: %T.as_type.as.ImplicitAs.impl.Convert.type.e0a = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.82e: = impl_witness imports.%ImplicitAs.impl_witness_table.896 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.d52: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.82e) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.dcd: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.d52) [concrete] @@ -2423,159 +2423,159 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.092: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.2ec: type = facet_type <@AddAssignWith, @AddAssignWith(%Cpp.long_long)> [concrete] // CHECK:STDOUT: %U.ea5: %ImplicitAs.type.a03 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.6d4: = impl_witness imports.%Copy.impl_witness_table.804 [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %Cpp.long_long, (%Copy.impl_witness.6d4) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.64f: = impl_witness imports.%ImplicitAs.impl_witness_table.f1e, @T.binding.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.c8d: %ImplicitAs.type.a03 = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.64f) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.383: = impl_witness imports.%AddAssignWith.impl_witness_table.815, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.2ec = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.383) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.815: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long_long, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.4a9: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.815, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.2b826b.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.2b826b.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.f9a: = impl_witness imports.%ImplicitAs.impl_witness_table.fe1, @T.as_type.as.ImplicitAs.impl(%Copy.facet) [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.86e: %ImplicitAs.type.a03 = facet_value %Cpp.long_long, (%ImplicitAs.impl_witness.f9a) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.441: = impl_witness imports.%AddAssignWith.impl_witness_table.335, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.2ec = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.441) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.985: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%Cpp.long_long, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.9fe: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.985, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.c22ab3.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.c22ab3.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %SubAssignWith.type.b35: type = facet_type <@SubAssignWith, @SubAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.e66: = impl_witness imports.%SubAssignWith.impl_witness_table.705, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.07d295.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.07d295.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.b35 = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.e66) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.55e: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long_long, %SubAssignWith.facet) [concrete] -// CHECK:STDOUT: %.858: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.55e, %SubAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.21e13f.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.07d295.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.21e13f.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.07d295.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.f02835.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.f02835.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.5d6: = impl_witness imports.%SubAssignWith.impl_witness_table.eb8, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.b35 = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.5d6) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.726: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%Cpp.long_long, %SubAssignWith.facet) [concrete] +// CHECK:STDOUT: %.4d2: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.726, %SubAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.2d753d.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.2d753d.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %MulAssignWith.type.112: type = facet_type <@MulAssignWith, @MulAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.04a: = impl_witness imports.%MulAssignWith.impl_witness_table.32a, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.112 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.04a) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.3c8: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long_long, %MulAssignWith.facet) [concrete] -// CHECK:STDOUT: %.930: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.3c8, %MulAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.5af50b.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.5af50b.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.bba: = impl_witness imports.%MulAssignWith.impl_witness_table.b29, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.443299.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.443299.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.112 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.bba) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.ace: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%Cpp.long_long, %MulAssignWith.facet) [concrete] +// CHECK:STDOUT: %.5fe: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.ace, %MulAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.c2e300.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.443299.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.c2e300.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.443299.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %DivAssignWith.type.45d: type = facet_type <@DivAssignWith, @DivAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.12b589.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.12b589.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.5ff: = impl_witness imports.%DivAssignWith.impl_witness_table.9c9, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.45d = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.5ff) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.f6a: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long_long, %DivAssignWith.facet) [concrete] -// CHECK:STDOUT: %.1ba: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.f6a, %DivAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.07c8ad.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.07c8ad.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.498a51.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.498a51.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.ac9: = impl_witness imports.%DivAssignWith.impl_witness_table.f29, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.86595e.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.86595e.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.45d = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.ac9) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.6fe: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%Cpp.long_long, %DivAssignWith.facet) [concrete] +// CHECK:STDOUT: %.592: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.6fe, %DivAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.9ad75a.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.86595e.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.9ad75a.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.86595e.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %ModAssignWith.type.a2e: type = facet_type <@ModAssignWith, @ModAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.afa: = impl_witness imports.%ModAssignWith.impl_witness_table.fb0, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.a2e = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.afa) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.4e1: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long_long, %ModAssignWith.facet) [concrete] -// CHECK:STDOUT: %.9bd: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.4e1, %ModAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.a3301b.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.a3301b.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.832: = impl_witness imports.%ModAssignWith.impl_witness_table.969, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.129384.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.129384.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.a2e = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.832) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.706: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%Cpp.long_long, %ModAssignWith.facet) [concrete] +// CHECK:STDOUT: %.56f: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.706, %ModAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.884783.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.129384.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.884783.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.129384.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.9bc: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.e8f: = impl_witness imports.%BitAndAssignWith.impl_witness_table.5cc, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.9bc = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.e8f) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.a11: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long_long, %BitAndAssignWith.facet) [concrete] -// CHECK:STDOUT: %.e9f: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.a11, %BitAndAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.5df9d8.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.5df9d8.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.9b2: = impl_witness imports.%BitAndAssignWith.impl_witness_table.8e2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.9bc = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.9b2) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.2d5: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%Cpp.long_long, %BitAndAssignWith.facet) [concrete] +// CHECK:STDOUT: %.712: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.2d5, %BitAndAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.e777fa.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.e777fa.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.219: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.3af: = impl_witness imports.%BitOrAssignWith.impl_witness_table.a52, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.219 = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.3af) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.9e0: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long_long, %BitOrAssignWith.facet) [concrete] -// CHECK:STDOUT: %.22a: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.9e0, %BitOrAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.857890.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.857890.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.cf2: = impl_witness imports.%BitOrAssignWith.impl_witness_table.97b, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.219 = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.cf2) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.1ce: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%Cpp.long_long, %BitOrAssignWith.facet) [concrete] +// CHECK:STDOUT: %.7f8: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.1ce, %BitOrAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3d166b.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3d166b.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.f9d: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.56d: = impl_witness imports.%BitXorAssignWith.impl_witness_table.223, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.f9d = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.56d) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.d25: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long_long, %BitXorAssignWith.facet) [concrete] -// CHECK:STDOUT: %.270: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.d25, %BitXorAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.97edcc.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.97edcc.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.568: = impl_witness imports.%BitXorAssignWith.impl_witness_table.671, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.f9d = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.568) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.0f7: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%Cpp.long_long, %BitXorAssignWith.facet) [concrete] +// CHECK:STDOUT: %.b7b: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.0f7, %BitXorAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.6de5bb.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.6de5bb.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.f24: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.824: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.cd9, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.f24 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.824) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.cf9: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long_long, %LeftShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.ecd: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.cf9, %LeftShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.525b00.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.525b00.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.d6a: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.dde, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.f24 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.d6a) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.ec1: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%Cpp.long_long, %LeftShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.3f2: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.ec1, %LeftShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.f783c6.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.f783c6.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.42e: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%Cpp.long_long)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.d22: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.074, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.42e = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.d22) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.eb3: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long_long, %RightShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.8eb: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.eb3, %RightShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.df86ad.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c8d) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.df86ad.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c8d) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.58d: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.a01, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.42e = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.58d) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.34e: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%Cpp.long_long, %RightShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.9c4: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.34e, %RightShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.aa24ec.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.86e) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.aa24ec.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.86e) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: %Cpp.long_long.as.Copy.impl.Op.type: type = fn_type @Cpp.long_long.as.Copy.impl.Op [concrete] @@ -2587,42 +2587,42 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: .long_long = constants.%Cpp.long_long // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.1c6: @T.binding.as_type.as.ImplicitAs.impl.%T.binding.as_type.as.ImplicitAs.impl.Convert.type (%T.binding.as_type.as.ImplicitAs.impl.Convert.type.55d) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.binding.as_type.as.ImplicitAs.impl.%T.binding.as_type.as.ImplicitAs.impl.Convert (constants.%T.binding.as_type.as.ImplicitAs.impl.Convert.19b)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.f1e = impl_witness_table (%Core.import_ref.1c6), @T.binding.as_type.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.2a3: @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert.type (%T.as_type.as.ImplicitAs.impl.Convert.type.e0a) = import_ref Core//prelude/types/cpp/int, inst{{[0-9A-F]+}} [indirect], loaded [symbolic = @T.as_type.as.ImplicitAs.impl.%T.as_type.as.ImplicitAs.impl.Convert (constants.%T.as_type.as.ImplicitAs.impl.Convert.3a8)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.fe1 = impl_witness_table (%Core.import_ref.2a3), @T.as_type.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: %Core.import_ref.d64: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] -// CHECK:STDOUT: %Core.import_ref.277: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.815 = impl_witness_table (%Core.import_ref.277), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.57a: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2)] +// CHECK:STDOUT: %Core.import_ref.046: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.335 = impl_witness_table (%Core.import_ref.046), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.099: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2)] // CHECK:STDOUT: %Core.import_ref.7a9: %Cpp.long_long.as.Copy.impl.Op.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.Copy.impl.Op] // CHECK:STDOUT: %Copy.impl_witness_table.804 = impl_witness_table (%Core.import_ref.7a9), @Cpp.long_long.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.819: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.705 = impl_witness_table (%Core.import_ref.819), @Cpp.long_long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.75b: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.2)] -// CHECK:STDOUT: %Core.import_ref.f92: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.32a = impl_witness_table (%Core.import_ref.f92), @Cpp.long_long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.94e: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.2)] -// CHECK:STDOUT: %Core.import_ref.b94: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.12b589.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.9c9 = impl_witness_table (%Core.import_ref.b94), @Cpp.long_long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.ec7: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.12b589.2)] -// CHECK:STDOUT: %Core.import_ref.797: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.797), @Cpp.long_long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.6fd: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.2)] -// CHECK:STDOUT: %Core.import_ref.e22: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.5cc = impl_witness_table (%Core.import_ref.e22), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.c78: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.2)] -// CHECK:STDOUT: %Core.import_ref.460: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.a52 = impl_witness_table (%Core.import_ref.460), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.fa0: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.2)] -// CHECK:STDOUT: %Core.import_ref.bb9: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.223 = impl_witness_table (%Core.import_ref.bb9), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3d4: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.2)] -// CHECK:STDOUT: %Core.import_ref.db6: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.cd9 = impl_witness_table (%Core.import_ref.db6), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.1b6: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.2)] -// CHECK:STDOUT: %Core.import_ref.522: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.074 = impl_witness_table (%Core.import_ref.522), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.bcc: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.2)] +// CHECK:STDOUT: %Core.import_ref.849: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.f02835.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.eb8 = impl_witness_table (%Core.import_ref.849), @Cpp.long_long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.938: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.f02835.2)] +// CHECK:STDOUT: %Core.import_ref.cb1: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.b29 = impl_witness_table (%Core.import_ref.cb1), @Cpp.long_long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.5f4: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.2)] +// CHECK:STDOUT: %Core.import_ref.add: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.498a51.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.f29 = impl_witness_table (%Core.import_ref.add), @Cpp.long_long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.996: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.498a51.2)] +// CHECK:STDOUT: %Core.import_ref.2a6: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.969 = impl_witness_table (%Core.import_ref.2a6), @Cpp.long_long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.701: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.2)] +// CHECK:STDOUT: %Core.import_ref.248: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.8e2 = impl_witness_table (%Core.import_ref.248), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a90: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.2)] +// CHECK:STDOUT: %Core.import_ref.268: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.97b = impl_witness_table (%Core.import_ref.268), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.87d: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.2)] +// CHECK:STDOUT: %Core.import_ref.a87: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.671 = impl_witness_table (%Core.import_ref.a87), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d1b: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.2)] +// CHECK:STDOUT: %Core.import_ref.cbd: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.dde = impl_witness_table (%Core.import_ref.cbd), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d34: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.2)] +// CHECK:STDOUT: %Core.import_ref.a05: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.a01 = impl_witness_table (%Core.import_ref.a05), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.807: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentHomogeneousLongLong() { @@ -2661,152 +2661,152 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %b: ref %Cpp.long_long = ref_binding b, %b.var // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11: %.4a9 = impl_witness_access constants.%AddAssignWith.impl_witness.383, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.2] +// CHECK:STDOUT: %impl.elem0.loc11: %.9fe = impl_witness_access constants.%AddAssignWith.impl_witness.441, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11 -// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.2b826b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.c22ab3.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 // CHECK:STDOUT: %.loc11_8: %Cpp.long_long = acquire_value %b.ref.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.1 = specific_constant imports.%Core.Op.57a, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.AddAssignWith.impl.Op.type.26466a.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d128e4.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.1 = specific_constant imports.%Core.Op.099, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.AddAssignWith.impl.Op.type.fbd4aa.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.20a22f.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.2b826b.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.c22ab3.2] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %a.ref.loc11, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.3(%a.ref.loc11, %.loc11_8) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12: %.858 = impl_witness_access constants.%SubAssignWith.impl_witness.e66, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.07d295.2] +// CHECK:STDOUT: %impl.elem0.loc12: %.4d2 = impl_witness_access constants.%SubAssignWith.impl_witness.5d6, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12 -// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.21e13f.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.2d753d.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 // CHECK:STDOUT: %.loc12_8: %Cpp.long_long = acquire_value %b.ref.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.1 = specific_constant imports.%Core.Op.75b, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.07d295.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.SubAssignWith.impl.Op.type.daa062.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.07d295.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.1 = specific_constant imports.%Core.Op.938, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.SubAssignWith.impl.Op.type.09a8e3.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.bdcde6.1] // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.21e13f.2] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.2d753d.2] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %a.ref.loc12, %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.3(%a.ref.loc12, %.loc12_8) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13: %.930 = impl_witness_access constants.%MulAssignWith.impl_witness.04a, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.2] +// CHECK:STDOUT: %impl.elem0.loc13: %.5fe = impl_witness_access constants.%MulAssignWith.impl_witness.bba, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.443299.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13 -// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.5af50b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.c2e300.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 // CHECK:STDOUT: %.loc13_8: %Cpp.long_long = acquire_value %b.ref.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.1 = specific_constant imports.%Core.Op.94e, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.MulAssignWith.impl.Op.type.f5880d.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.0edfbc.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.1 = specific_constant imports.%Core.Op.5f4, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.443299.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.MulAssignWith.impl.Op.type.e2c735.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.443299.1] // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.5af50b.2] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.c2e300.2] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %a.ref.loc13, %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.3(%a.ref.loc13, %.loc13_8) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14: %.1ba = impl_witness_access constants.%DivAssignWith.impl_witness.5ff, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.2] +// CHECK:STDOUT: %impl.elem0.loc14: %.592 = impl_witness_access constants.%DivAssignWith.impl_witness.ac9, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.86595e.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14 -// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.07c8ad.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.9ad75a.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 // CHECK:STDOUT: %.loc14_8: %Cpp.long_long = acquire_value %b.ref.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.1 = specific_constant imports.%Core.Op.ec7, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.DivAssignWith.impl.Op.type.fa44cf.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.409fa6.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.1 = specific_constant imports.%Core.Op.996, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.86595e.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.DivAssignWith.impl.Op.type.376852.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.86595e.1] // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.07c8ad.2] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.9ad75a.2] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %a.ref.loc14, %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.3(%a.ref.loc14, %.loc14_8) // CHECK:STDOUT: %a.ref.loc15: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc15: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc15: %.9bd = impl_witness_access constants.%ModAssignWith.impl_witness.afa, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.2] +// CHECK:STDOUT: %impl.elem0.loc15: %.56f = impl_witness_access constants.%ModAssignWith.impl_witness.832, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.129384.2] // CHECK:STDOUT: %bound_method.loc15_5.1: = bound_method %a.ref.loc15, %impl.elem0.loc15 -// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.a3301b.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc15: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc15 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc15: = specific_function %impl.elem0.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.884783.1] // CHECK:STDOUT: %bound_method.loc15_5.2: = bound_method %a.ref.loc15, %specific_fn.loc15 // CHECK:STDOUT: %.loc15_8: %Cpp.long_long = acquire_value %b.ref.loc15 -// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.1 = specific_constant imports.%Core.Op.6fd, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.1] -// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long_long.as.ModAssignWith.impl.Op.type.80b19c.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.0b732b.1] +// CHECK:STDOUT: %.loc15_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.1 = specific_constant imports.%Core.Op.701, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.129384.1] +// CHECK:STDOUT: %Op.ref.loc15: %Cpp.long_long.as.ModAssignWith.impl.Op.type.94b4c3.1 = name_ref Op, %.loc15_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.129384.1] // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc15, %Op.ref.loc15 -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.a3301b.2] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc15, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.884783.2] // CHECK:STDOUT: %bound_method.loc15_5.3: = bound_method %a.ref.loc15, %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc15_5.3(%a.ref.loc15, %.loc15_8) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17: %.e9f = impl_witness_access constants.%BitAndAssignWith.impl_witness.e8f, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.2] +// CHECK:STDOUT: %impl.elem0.loc17: %.712 = impl_witness_access constants.%BitAndAssignWith.impl_witness.9b2, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17 -// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.5df9d8.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.e777fa.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 // CHECK:STDOUT: %.loc17_8: %Cpp.long_long = acquire_value %b.ref.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.1 = specific_constant imports.%Core.Op.c78, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a7c3f6.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.10a9af.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.1 = specific_constant imports.%Core.Op.a90, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.cbbd71.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.26fab0.1] // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.5df9d8.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.e777fa.2] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %a.ref.loc17, %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.3(%a.ref.loc17, %.loc17_8) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18: %.22a = impl_witness_access constants.%BitOrAssignWith.impl_witness.3af, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.2] +// CHECK:STDOUT: %impl.elem0.loc18: %.7f8 = impl_witness_access constants.%BitOrAssignWith.impl_witness.cf2, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18 -// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.857890.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3d166b.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 // CHECK:STDOUT: %.loc18_8: %Cpp.long_long = acquire_value %b.ref.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.1 = specific_constant imports.%Core.Op.fa0, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.367944.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.60d957.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.1 = specific_constant imports.%Core.Op.87d, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.436f6c.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.64f3c5.1] // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.857890.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.3d166b.2] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %a.ref.loc18, %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.3(%a.ref.loc18, %.loc18_8) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19: %.270 = impl_witness_access constants.%BitXorAssignWith.impl_witness.56d, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.2] +// CHECK:STDOUT: %impl.elem0.loc19: %.b7b = impl_witness_access constants.%BitXorAssignWith.impl_witness.568, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19 -// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.97edcc.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.6de5bb.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 // CHECK:STDOUT: %.loc19_8: %Cpp.long_long = acquire_value %b.ref.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.1 = specific_constant imports.%Core.Op.3d4, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.d7a644.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.c92629.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.1 = specific_constant imports.%Core.Op.d1b, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1f39ab.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.f0e9d1.1] // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.97edcc.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.6de5bb.2] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %a.ref.loc19, %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.3(%a.ref.loc19, %.loc19_8) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20: %.ecd = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.824, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.2] +// CHECK:STDOUT: %impl.elem0.loc20: %.3f2 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.d6a, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20 -// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.525b00.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.f783c6.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 // CHECK:STDOUT: %.loc20_9: %Cpp.long_long = acquire_value %b.ref.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.1 = specific_constant imports.%Core.Op.1b6, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.bbf90a.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.ce8f7e.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.1 = specific_constant imports.%Core.Op.d34, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.369d19.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.98e8c0.1] // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.525b00.2] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.f783c6.2] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %a.ref.loc20, %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc20_5.3(%a.ref.loc20, %.loc20_9) // CHECK:STDOUT: %a.ref.loc21: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc21: ref %Cpp.long_long = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc21: %.8eb = impl_witness_access constants.%RightShiftAssignWith.impl_witness.d22, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.2] +// CHECK:STDOUT: %impl.elem0.loc21: %.9c4 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.58d, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.2] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %a.ref.loc21, %impl.elem0.loc21 -// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.64f) [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.c8d] -// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.df86ad.1] +// CHECK:STDOUT: %ImplicitAs.facet.loc21: %ImplicitAs.type.a03 = facet_value constants.%Cpp.long_long, (constants.%ImplicitAs.impl_witness.f9a) [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.a03 = converted constants.%Cpp.long_long, %ImplicitAs.facet.loc21 [concrete = constants.%ImplicitAs.facet.86e] +// CHECK:STDOUT: %specific_fn.loc21: = specific_function %impl.elem0.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.aa24ec.1] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %a.ref.loc21, %specific_fn.loc21 // CHECK:STDOUT: %.loc21_9: %Cpp.long_long = acquire_value %b.ref.loc21 -// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.1 = specific_constant imports.%Core.Op.bcc, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.1] -// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.ff6b73.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.4e9b16.1] +// CHECK:STDOUT: %.loc21_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.1 = specific_constant imports.%Core.Op.807, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.1] +// CHECK:STDOUT: %Op.ref.loc21: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0c730c.1 = name_ref Op, %.loc21_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.9852f6.1] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc21, %Op.ref.loc21 -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c8d) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.df86ad.2] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc21, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.86e) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.aa24ec.2] // CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %a.ref.loc21, %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc21_5.3(%a.ref.loc21, %.loc21_9) // CHECK:STDOUT: %Destroy.Op.bound.loc9: = bound_method %b.var, constants.%Destroy.Op.651ba6.2 @@ -2844,161 +2844,161 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.092: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.d84: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] // CHECK:STDOUT: %U.ea5: %ImplicitAs.type.a03 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.1b3: = impl_witness imports.%ImplicitAs.impl_witness_table.b19 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.c59: %ImplicitAs.type.a03 = facet_value %i64, (%ImplicitAs.impl_witness.1b3) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.767: = impl_witness imports.%AddAssignWith.impl_witness_table.815, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.d84 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.767) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.d84: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.f7b: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.d84, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.c30: = impl_witness imports.%AddAssignWith.impl_witness_table.335, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.d84 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.c30) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.81a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.22f: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.81a, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.653: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %.cb1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.653, %ImplicitAs.facet.c59 [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %SubAssignWith.type.d66: type = facet_type <@SubAssignWith, @SubAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2 = struct_value () [symbolic] -// CHECK:STDOUT: %SubAssignWith.impl_witness.089: = impl_witness imports.%SubAssignWith.impl_witness_table.705, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.2 = struct_value () [concrete] -// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.d66 = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.089) [concrete] -// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.bd6: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i64, %SubAssignWith.facet) [concrete] -// CHECK:STDOUT: %.b43: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.bd6, %SubAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.39aa60.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.39aa60.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.f02835.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.f02835.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2 = struct_value () [symbolic] +// CHECK:STDOUT: %SubAssignWith.impl_witness.98b: = impl_witness imports.%SubAssignWith.impl_witness_table.eb8, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.1: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.2, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.1: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.2: type = fn_type @Cpp.long_long.as.SubAssignWith.impl.Op.1, @Cpp.long_long.as.SubAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.2 = struct_value () [concrete] +// CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.d66 = facet_value %Cpp.long_long, (%SubAssignWith.impl_witness.98b) [concrete] +// CHECK:STDOUT: %SubAssignWith.WithSelf.Op.type.5d3: type = fn_type @SubAssignWith.WithSelf.Op, @SubAssignWith.WithSelf(%i64, %SubAssignWith.facet) [concrete] +// CHECK:STDOUT: %.dd8: type = fn_type_with_self_type %SubAssignWith.WithSelf.Op.type.5d3, %SubAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6a9965.1: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.2, @Cpp.long_long.as.SubAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6a9965.2: = specific_function %Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.1, @Cpp.long_long.as.SubAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %MulAssignWith.type.e40: type = facet_type <@MulAssignWith, @MulAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %MulAssignWith.impl_witness.435: = impl_witness imports.%MulAssignWith.impl_witness_table.32a, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.2 = struct_value () [concrete] -// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.e40 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.435) [concrete] -// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.dd5: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i64, %MulAssignWith.facet) [concrete] -// CHECK:STDOUT: %.ebf: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.dd5, %MulAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.8da25e.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.8da25e.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2 = struct_value () [symbolic] +// CHECK:STDOUT: %MulAssignWith.impl_witness.aee: = impl_witness imports.%MulAssignWith.impl_witness_table.b29, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.1: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.2, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.1: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.2: type = fn_type @Cpp.long_long.as.MulAssignWith.impl.Op.1, @Cpp.long_long.as.MulAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.2 = struct_value () [concrete] +// CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.e40 = facet_value %Cpp.long_long, (%MulAssignWith.impl_witness.aee) [concrete] +// CHECK:STDOUT: %MulAssignWith.WithSelf.Op.type.6aa: type = fn_type @MulAssignWith.WithSelf.Op, @MulAssignWith.WithSelf(%i64, %MulAssignWith.facet) [concrete] +// CHECK:STDOUT: %.475: type = fn_type_with_self_type %MulAssignWith.WithSelf.Op.type.6aa, %MulAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.08c89b.1: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.2, @Cpp.long_long.as.MulAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.08c89b.2: = specific_function %Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.1, @Cpp.long_long.as.MulAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %DivAssignWith.type.511: type = facet_type <@DivAssignWith, @DivAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.12b589.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.12b589.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2 = struct_value () [symbolic] -// CHECK:STDOUT: %DivAssignWith.impl_witness.817: = impl_witness imports.%DivAssignWith.impl_witness_table.9c9, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.2 = struct_value () [concrete] -// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.511 = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.817) [concrete] -// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.e7b: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i64, %DivAssignWith.facet) [concrete] -// CHECK:STDOUT: %.9aa: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.e7b, %DivAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.a29bb8.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.a29bb8.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.498a51.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.498a51.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2 = struct_value () [symbolic] +// CHECK:STDOUT: %DivAssignWith.impl_witness.654: = impl_witness imports.%DivAssignWith.impl_witness_table.f29, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.1: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.2, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.1: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.2: type = fn_type @Cpp.long_long.as.DivAssignWith.impl.Op.1, @Cpp.long_long.as.DivAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.2 = struct_value () [concrete] +// CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.511 = facet_value %Cpp.long_long, (%DivAssignWith.impl_witness.654) [concrete] +// CHECK:STDOUT: %DivAssignWith.WithSelf.Op.type.173: type = fn_type @DivAssignWith.WithSelf.Op, @DivAssignWith.WithSelf(%i64, %DivAssignWith.facet) [concrete] +// CHECK:STDOUT: %.9b7: type = fn_type_with_self_type %DivAssignWith.WithSelf.Op.type.173, %DivAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.437985.1: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.2, @Cpp.long_long.as.DivAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.437985.2: = specific_function %Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.1, @Cpp.long_long.as.DivAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %ModAssignWith.type.2c3: type = facet_type <@ModAssignWith, @ModAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2 = struct_value () [symbolic] -// CHECK:STDOUT: %ModAssignWith.impl_witness.f7c: = impl_witness imports.%ModAssignWith.impl_witness_table.fb0, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.49994b.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.49994b.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.2 = struct_value () [concrete] -// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.2c3 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.f7c) [concrete] -// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.202: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i64, %ModAssignWith.facet) [concrete] -// CHECK:STDOUT: %.eb2: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.202, %ModAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.e3c8dd.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.49994b.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.e3c8dd.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.49994b.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2 = struct_value () [symbolic] +// CHECK:STDOUT: %ModAssignWith.impl_witness.884: = impl_witness imports.%ModAssignWith.impl_witness_table.969, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.1: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.2, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.85392b.1: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.2: type = fn_type @Cpp.long_long.as.ModAssignWith.impl.Op.1, @Cpp.long_long.as.ModAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.85392b.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.2 = struct_value () [concrete] +// CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.2c3 = facet_value %Cpp.long_long, (%ModAssignWith.impl_witness.884) [concrete] +// CHECK:STDOUT: %ModAssignWith.WithSelf.Op.type.ff8: type = fn_type @ModAssignWith.WithSelf.Op, @ModAssignWith.WithSelf(%i64, %ModAssignWith.facet) [concrete] +// CHECK:STDOUT: %.3ae: type = fn_type_with_self_type %ModAssignWith.WithSelf.Op.type.ff8, %ModAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.2e5057.1: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.85392b.2, @Cpp.long_long.as.ModAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.2e5057.2: = specific_function %Cpp.long_long.as.ModAssignWith.impl.Op.85392b.1, @Cpp.long_long.as.ModAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.8af: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness.80c: = impl_witness imports.%BitAndAssignWith.impl_witness_table.5cc, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.8af = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.80c) [concrete] -// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.e1b: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i64, %BitAndAssignWith.facet) [concrete] -// CHECK:STDOUT: %.ba8: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.e1b, %BitAndAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.00c338.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.00c338.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness.e50: = impl_witness imports.%BitAndAssignWith.impl_witness_table.8e2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.1: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.2, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.1: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.2: type = fn_type @Cpp.long_long.as.BitAndAssignWith.impl.Op.1, @Cpp.long_long.as.BitAndAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.8af = facet_value %Cpp.long_long, (%BitAndAssignWith.impl_witness.e50) [concrete] +// CHECK:STDOUT: %BitAndAssignWith.WithSelf.Op.type.194: type = fn_type @BitAndAssignWith.WithSelf.Op, @BitAndAssignWith.WithSelf(%i64, %BitAndAssignWith.facet) [concrete] +// CHECK:STDOUT: %.5d7: type = fn_type_with_self_type %BitAndAssignWith.WithSelf.Op.type.194, %BitAndAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.8d6e11.1: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.2, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.8d6e11.2: = specific_function %Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.172: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness.bd2: = impl_witness imports.%BitOrAssignWith.impl_witness_table.a52, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.172 = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.bd2) [concrete] -// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.21a: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i64, %BitOrAssignWith.facet) [concrete] -// CHECK:STDOUT: %.4fb: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.21a, %BitOrAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.b0c3cb.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.b0c3cb.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness.878: = impl_witness imports.%BitOrAssignWith.impl_witness_table.97b, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.1: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.2, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.1: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.2: type = fn_type @Cpp.long_long.as.BitOrAssignWith.impl.Op.1, @Cpp.long_long.as.BitOrAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.172 = facet_value %Cpp.long_long, (%BitOrAssignWith.impl_witness.878) [concrete] +// CHECK:STDOUT: %BitOrAssignWith.WithSelf.Op.type.639: type = fn_type @BitOrAssignWith.WithSelf.Op, @BitOrAssignWith.WithSelf(%i64, %BitOrAssignWith.facet) [concrete] +// CHECK:STDOUT: %.744: type = fn_type_with_self_type %BitOrAssignWith.WithSelf.Op.type.639, %BitOrAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80f569.1: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.2, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80f569.2: = specific_function %Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.2c8: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2 = struct_value () [symbolic] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness.f91: = impl_witness imports.%BitXorAssignWith.impl_witness_table.223, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.2 = struct_value () [concrete] -// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.2c8 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.f91) [concrete] -// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.452: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i64, %BitXorAssignWith.facet) [concrete] -// CHECK:STDOUT: %.919: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.452, %BitXorAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.8f3086.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.8f3086.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2 = struct_value () [symbolic] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness.de9: = impl_witness imports.%BitXorAssignWith.impl_witness_table.671, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.1: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.2, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.1: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.2: type = fn_type @Cpp.long_long.as.BitXorAssignWith.impl.Op.1, @Cpp.long_long.as.BitXorAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.2 = struct_value () [concrete] +// CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.2c8 = facet_value %Cpp.long_long, (%BitXorAssignWith.impl_witness.de9) [concrete] +// CHECK:STDOUT: %BitXorAssignWith.WithSelf.Op.type.443: type = fn_type @BitXorAssignWith.WithSelf.Op, @BitXorAssignWith.WithSelf(%i64, %BitXorAssignWith.facet) [concrete] +// CHECK:STDOUT: %.e0d: type = fn_type_with_self_type %BitXorAssignWith.WithSelf.Op.type.443, %BitXorAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.e7b11a.1: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.2, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.e7b11a.2: = specific_function %Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.b97: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2 = struct_value () [symbolic] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.c81: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.cd9, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.2 = struct_value () [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.b97 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.c81) [concrete] -// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.89e: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i64, %LeftShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.64f: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.89e, %LeftShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1c7fb8.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1c7fb8.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2 = struct_value () [symbolic] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness.b1a: = impl_witness imports.%LeftShiftAssignWith.impl_witness_table.dde, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.1: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.1: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.2: type = fn_type @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1, @Cpp.long_long.as.LeftShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.2 = struct_value () [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.b97 = facet_value %Cpp.long_long, (%LeftShiftAssignWith.impl_witness.b1a) [concrete] +// CHECK:STDOUT: %LeftShiftAssignWith.WithSelf.Op.type.fe5: type = fn_type @LeftShiftAssignWith.WithSelf.Op, @LeftShiftAssignWith.WithSelf(%i64, %LeftShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.405: type = fn_type_with_self_type %LeftShiftAssignWith.WithSelf.Op.type.fe5, %LeftShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1ffb17.1: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.2, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1ffb17.2: = specific_function %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.721: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%i64)> [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2 = struct_value () [symbolic] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.1b7: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.074, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.2 = struct_value () [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.721 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.1b7) [concrete] -// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.eb9: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i64, %RightShiftAssignWith.facet) [concrete] -// CHECK:STDOUT: %.298: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.eb9, %RightShiftAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.1c2239.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.1c2239.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2 = struct_value () [symbolic] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness.2b1: = impl_witness imports.%RightShiftAssignWith.impl_witness_table.a01, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.1: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.1: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.2: type = fn_type @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1, @Cpp.long_long.as.RightShiftAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.2 = struct_value () [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.721 = facet_value %Cpp.long_long, (%RightShiftAssignWith.impl_witness.2b1) [concrete] +// CHECK:STDOUT: %RightShiftAssignWith.WithSelf.Op.type.0b1: type = fn_type @RightShiftAssignWith.WithSelf.Op, @RightShiftAssignWith.WithSelf(%i64, %RightShiftAssignWith.facet) [concrete] +// CHECK:STDOUT: %.84b: type = fn_type_with_self_type %RightShiftAssignWith.WithSelf.Op.type.0b1, %RightShiftAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.8ae17e.1: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.2, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.8ae17e.2: = specific_function %Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc9_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3010,38 +3010,38 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.d64: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.aba = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.a20] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] -// CHECK:STDOUT: %Core.import_ref.277: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.815 = impl_witness_table (%Core.import_ref.277), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.57a: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2)] +// CHECK:STDOUT: %Core.import_ref.046: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.335 = impl_witness_table (%Core.import_ref.046), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.099: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2)] // CHECK:STDOUT: %Core.import_ref.4f4: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.b19 = impl_witness_table (%Core.import_ref.4f4), @i64.as.ImplicitAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.819: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.1)] -// CHECK:STDOUT: %SubAssignWith.impl_witness_table.705 = impl_witness_table (%Core.import_ref.819), @Cpp.long_long.as.SubAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.75b: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.092242.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.7c6ec4.2)] -// CHECK:STDOUT: %Core.import_ref.f92: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.1)] -// CHECK:STDOUT: %MulAssignWith.impl_witness_table.32a = impl_witness_table (%Core.import_ref.f92), @Cpp.long_long.as.MulAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.94e: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.d6e66c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.b4560e.2)] -// CHECK:STDOUT: %Core.import_ref.b94: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.12b589.1)] -// CHECK:STDOUT: %DivAssignWith.impl_witness_table.9c9 = impl_witness_table (%Core.import_ref.b94), @Cpp.long_long.as.DivAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.ec7: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.93a446.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.12b589.2)] -// CHECK:STDOUT: %Core.import_ref.797: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.1)] -// CHECK:STDOUT: %ModAssignWith.impl_witness_table.fb0 = impl_witness_table (%Core.import_ref.797), @Cpp.long_long.as.ModAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.6fd: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.92274d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.31c4bc.2)] -// CHECK:STDOUT: %Core.import_ref.e22: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.1)] -// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.5cc = impl_witness_table (%Core.import_ref.e22), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.c78: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.4d9ef1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.6a0d28.2)] -// CHECK:STDOUT: %Core.import_ref.460: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.1)] -// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.a52 = impl_witness_table (%Core.import_ref.460), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.fa0: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.609f8c.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1fac0c.2)] -// CHECK:STDOUT: %Core.import_ref.bb9: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.1)] -// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.223 = impl_witness_table (%Core.import_ref.bb9), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.3d4: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.85327b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.e7c6f2.2)] -// CHECK:STDOUT: %Core.import_ref.db6: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.1)] -// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.cd9 = impl_witness_table (%Core.import_ref.db6), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.1b6: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.3faef3.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.44b51c.2)] -// CHECK:STDOUT: %Core.import_ref.522: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.1)] -// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.074 = impl_witness_table (%Core.import_ref.522), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.bcc: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.6ccfae.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2beecc.2)] +// CHECK:STDOUT: %Core.import_ref.849: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.f02835.1)] +// CHECK:STDOUT: %SubAssignWith.impl_witness_table.eb8 = impl_witness_table (%Core.import_ref.849), @Cpp.long_long.as.SubAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.938: @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long_long.as.SubAssignWith.impl.Op.type.6d927b.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.SubAssignWith.impl.%Cpp.long_long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.SubAssignWith.impl.Op.f02835.2)] +// CHECK:STDOUT: %Core.import_ref.cb1: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.2 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.1)] +// CHECK:STDOUT: %MulAssignWith.impl_witness_table.b29 = impl_witness_table (%Core.import_ref.cb1), @Cpp.long_long.as.MulAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.5f4: @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.type.1 (%Cpp.long_long.as.MulAssignWith.impl.Op.type.a601c5.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.MulAssignWith.impl.%Cpp.long_long.as.MulAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f8dfd6.2)] +// CHECK:STDOUT: %Core.import_ref.add: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.2 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.498a51.1)] +// CHECK:STDOUT: %DivAssignWith.impl_witness_table.f29 = impl_witness_table (%Core.import_ref.add), @Cpp.long_long.as.DivAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.996: @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.type.1 (%Cpp.long_long.as.DivAssignWith.impl.Op.type.90bb4a.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.DivAssignWith.impl.%Cpp.long_long.as.DivAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.DivAssignWith.impl.Op.498a51.2)] +// CHECK:STDOUT: %Core.import_ref.2a6: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.2 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.1)] +// CHECK:STDOUT: %ModAssignWith.impl_witness_table.969 = impl_witness_table (%Core.import_ref.2a6), @Cpp.long_long.as.ModAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.701: @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.type.1 (%Cpp.long_long.as.ModAssignWith.impl.Op.type.1135b9.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.ModAssignWith.impl.%Cpp.long_long.as.ModAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.ModAssignWith.impl.Op.b66b82.2)] +// CHECK:STDOUT: %Core.import_ref.248: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.1)] +// CHECK:STDOUT: %BitAndAssignWith.impl_witness_table.8e2 = impl_witness_table (%Core.import_ref.248), @Cpp.long_long.as.BitAndAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.a90: @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitAndAssignWith.impl.Op.type.a05c22.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitAndAssignWith.impl.%Cpp.long_long.as.BitAndAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.624b93.2)] +// CHECK:STDOUT: %Core.import_ref.268: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.1)] +// CHECK:STDOUT: %BitOrAssignWith.impl_witness_table.97b = impl_witness_table (%Core.import_ref.268), @Cpp.long_long.as.BitOrAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.87d: @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitOrAssignWith.impl.Op.type.1d5518.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitOrAssignWith.impl.%Cpp.long_long.as.BitOrAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.cefc26.2)] +// CHECK:STDOUT: %Core.import_ref.a87: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.2 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.1)] +// CHECK:STDOUT: %BitXorAssignWith.impl_witness_table.671 = impl_witness_table (%Core.import_ref.a87), @Cpp.long_long.as.BitXorAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d1b: @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.1 (%Cpp.long_long.as.BitXorAssignWith.impl.Op.type.8da076.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.BitXorAssignWith.impl.%Cpp.long_long.as.BitXorAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.53f9c8.2)] +// CHECK:STDOUT: %Core.import_ref.cbd: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.1)] +// CHECK:STDOUT: %LeftShiftAssignWith.impl_witness_table.dde = impl_witness_table (%Core.import_ref.cbd), @Cpp.long_long.as.LeftShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.d34: @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.fb5a0d.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.LeftShiftAssignWith.impl.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.9e2127.2)] +// CHECK:STDOUT: %Core.import_ref.a05: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.2 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.1)] +// CHECK:STDOUT: %RightShiftAssignWith.impl_witness_table.a01 = impl_witness_table (%Core.import_ref.a05), @Cpp.long_long.as.RightShiftAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.807: @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.1 (%Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.40ffed.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.RightShiftAssignWith.impl.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5d152f.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongLongAndI64() { @@ -3065,21 +3065,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref.loc10: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc10: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.f7b = impl_witness_access constants.%AddAssignWith.impl_witness.767, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.22f = impl_witness_access constants.%AddAssignWith.impl_witness.c30, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref.loc10, %impl.elem0.loc10_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc10: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc10 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref.loc10, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = specific_constant imports.%Core.Op.57a, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1] -// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = specific_constant imports.%Core.Op.099, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1] +// CHECK:STDOUT: %Op.ref.loc10: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref.loc10, %Op.ref.loc10 // CHECK:STDOUT: %impl.elem0.loc10_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref.loc10, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long_long = call %bound_method.loc10_5.3(%b.ref.loc10) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long_long = converted %b.ref.loc10, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc10, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref.loc10, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc10_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref.loc10, %impl.elem0.loc10_8 @@ -3089,21 +3089,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_5.4(%a.ref.loc10, %.loc10_8.2) // CHECK:STDOUT: %a.ref.loc11: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc11: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc11_5.1: %.b43 = impl_witness_access constants.%SubAssignWith.impl_witness.089, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.2] +// CHECK:STDOUT: %impl.elem0.loc11_5.1: %.dd8 = impl_witness_access constants.%SubAssignWith.impl_witness.98b, element0 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.2] // CHECK:STDOUT: %bound_method.loc11_5.1: = bound_method %a.ref.loc11, %impl.elem0.loc11_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc11: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc11 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5.1, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.39aa60.1] +// CHECK:STDOUT: %specific_fn.loc11: = specific_function %impl.elem0.loc11_5.1, @Cpp.long_long.as.SubAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6a9965.1] // CHECK:STDOUT: %bound_method.loc11_5.2: = bound_method %a.ref.loc11, %specific_fn.loc11 -// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.1 = specific_constant imports.%Core.Op.75b, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.1] -// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.SubAssignWith.impl.Op.type.b97f87.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.268b0a.1] +// CHECK:STDOUT: %.loc11_5.2: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.1 = specific_constant imports.%Core.Op.938, @Cpp.long_long.as.SubAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.1] +// CHECK:STDOUT: %Op.ref.loc11: %Cpp.long_long.as.SubAssignWith.impl.Op.type.15b1da.1 = name_ref Op, %.loc11_5.2 [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.e2f3a4.1] // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.bound: = bound_method %a.ref.loc11, %Op.ref.loc11 // CHECK:STDOUT: %impl.elem0.loc11_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_5.3: = bound_method %b.ref.loc11, %impl.elem0.loc11_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc11_5: init %Cpp.long_long = call %bound_method.loc11_5.3(%b.ref.loc11) // CHECK:STDOUT: %.loc11_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc11_5 // CHECK:STDOUT: %.loc11_5.4: %Cpp.long_long = converted %b.ref.loc11, %.loc11_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.39aa60.2] +// CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc11, @Cpp.long_long.as.SubAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn.6a9965.2] // CHECK:STDOUT: %bound_method.loc11_5.4: = bound_method %a.ref.loc11, %Cpp.long_long.as.SubAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc11_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc11_8: = bound_method %b.ref.loc11, %impl.elem0.loc11_8 @@ -3113,21 +3113,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.SubAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc11_5.4(%a.ref.loc11, %.loc11_8.2) // CHECK:STDOUT: %a.ref.loc12: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc12: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc12_5.1: %.ebf = impl_witness_access constants.%MulAssignWith.impl_witness.435, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.2] +// CHECK:STDOUT: %impl.elem0.loc12_5.1: %.475 = impl_witness_access constants.%MulAssignWith.impl_witness.aee, element0 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.2] // CHECK:STDOUT: %bound_method.loc12_5.1: = bound_method %a.ref.loc12, %impl.elem0.loc12_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc12: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc12 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5.1, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.8da25e.1] +// CHECK:STDOUT: %specific_fn.loc12: = specific_function %impl.elem0.loc12_5.1, @Cpp.long_long.as.MulAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.08c89b.1] // CHECK:STDOUT: %bound_method.loc12_5.2: = bound_method %a.ref.loc12, %specific_fn.loc12 -// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.1 = specific_constant imports.%Core.Op.94e, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.1] -// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.MulAssignWith.impl.Op.type.9015f3.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.e299d7.1] +// CHECK:STDOUT: %.loc12_5.2: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.1 = specific_constant imports.%Core.Op.5f4, @Cpp.long_long.as.MulAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.1] +// CHECK:STDOUT: %Op.ref.loc12: %Cpp.long_long.as.MulAssignWith.impl.Op.type.fe73f6.1 = name_ref Op, %.loc12_5.2 [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.f055d3.1] // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.bound: = bound_method %a.ref.loc12, %Op.ref.loc12 // CHECK:STDOUT: %impl.elem0.loc12_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_5.3: = bound_method %b.ref.loc12, %impl.elem0.loc12_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc12_5: init %Cpp.long_long = call %bound_method.loc12_5.3(%b.ref.loc12) // CHECK:STDOUT: %.loc12_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc12_5 // CHECK:STDOUT: %.loc12_5.4: %Cpp.long_long = converted %b.ref.loc12, %.loc12_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.8da25e.2] +// CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc12, @Cpp.long_long.as.MulAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn.08c89b.2] // CHECK:STDOUT: %bound_method.loc12_5.4: = bound_method %a.ref.loc12, %Cpp.long_long.as.MulAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc12_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc12_8: = bound_method %b.ref.loc12, %impl.elem0.loc12_8 @@ -3137,21 +3137,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.MulAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc12_5.4(%a.ref.loc12, %.loc12_8.2) // CHECK:STDOUT: %a.ref.loc13: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc13: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.9aa = impl_witness_access constants.%DivAssignWith.impl_witness.817, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.2] +// CHECK:STDOUT: %impl.elem0.loc13_5.1: %.9b7 = impl_witness_access constants.%DivAssignWith.impl_witness.654, element0 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.2] // CHECK:STDOUT: %bound_method.loc13_5.1: = bound_method %a.ref.loc13, %impl.elem0.loc13_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc13: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc13 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.a29bb8.1] +// CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13_5.1, @Cpp.long_long.as.DivAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.437985.1] // CHECK:STDOUT: %bound_method.loc13_5.2: = bound_method %a.ref.loc13, %specific_fn.loc13 -// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.1 = specific_constant imports.%Core.Op.ec7, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.1] -// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.DivAssignWith.impl.Op.type.868bc4.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.6729c8.1] +// CHECK:STDOUT: %.loc13_5.2: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.1 = specific_constant imports.%Core.Op.996, @Cpp.long_long.as.DivAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.1] +// CHECK:STDOUT: %Op.ref.loc13: %Cpp.long_long.as.DivAssignWith.impl.Op.type.d85846.1 = name_ref Op, %.loc13_5.2 [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.fd9eff.1] // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.bound: = bound_method %a.ref.loc13, %Op.ref.loc13 // CHECK:STDOUT: %impl.elem0.loc13_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_5.3: = bound_method %b.ref.loc13, %impl.elem0.loc13_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc13_5: init %Cpp.long_long = call %bound_method.loc13_5.3(%b.ref.loc13) // CHECK:STDOUT: %.loc13_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc13_5 // CHECK:STDOUT: %.loc13_5.4: %Cpp.long_long = converted %b.ref.loc13, %.loc13_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.a29bb8.2] +// CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc13, @Cpp.long_long.as.DivAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn.437985.2] // CHECK:STDOUT: %bound_method.loc13_5.4: = bound_method %a.ref.loc13, %Cpp.long_long.as.DivAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc13_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc13_8: = bound_method %b.ref.loc13, %impl.elem0.loc13_8 @@ -3161,21 +3161,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.DivAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc13_5.4(%a.ref.loc13, %.loc13_8.2) // CHECK:STDOUT: %a.ref.loc14: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc14: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc14_5.1: %.eb2 = impl_witness_access constants.%ModAssignWith.impl_witness.f7c, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.49994b.2] +// CHECK:STDOUT: %impl.elem0.loc14_5.1: %.3ae = impl_witness_access constants.%ModAssignWith.impl_witness.884, element0 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.85392b.2] // CHECK:STDOUT: %bound_method.loc14_5.1: = bound_method %a.ref.loc14, %impl.elem0.loc14_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc14: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc14 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5.1, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.e3c8dd.1] +// CHECK:STDOUT: %specific_fn.loc14: = specific_function %impl.elem0.loc14_5.1, @Cpp.long_long.as.ModAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.2e5057.1] // CHECK:STDOUT: %bound_method.loc14_5.2: = bound_method %a.ref.loc14, %specific_fn.loc14 -// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.1 = specific_constant imports.%Core.Op.6fd, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.49994b.1] -// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.ModAssignWith.impl.Op.type.afaa70.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.49994b.1] +// CHECK:STDOUT: %.loc14_5.2: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.1 = specific_constant imports.%Core.Op.701, @Cpp.long_long.as.ModAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.85392b.1] +// CHECK:STDOUT: %Op.ref.loc14: %Cpp.long_long.as.ModAssignWith.impl.Op.type.fde376.1 = name_ref Op, %.loc14_5.2 [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.85392b.1] // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.bound: = bound_method %a.ref.loc14, %Op.ref.loc14 // CHECK:STDOUT: %impl.elem0.loc14_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_5.3: = bound_method %b.ref.loc14, %impl.elem0.loc14_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc14_5: init %Cpp.long_long = call %bound_method.loc14_5.3(%b.ref.loc14) // CHECK:STDOUT: %.loc14_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc14_5 // CHECK:STDOUT: %.loc14_5.4: %Cpp.long_long = converted %b.ref.loc14, %.loc14_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.e3c8dd.2] +// CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc14, @Cpp.long_long.as.ModAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn.2e5057.2] // CHECK:STDOUT: %bound_method.loc14_5.4: = bound_method %a.ref.loc14, %Cpp.long_long.as.ModAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc14_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc14_8: = bound_method %b.ref.loc14, %impl.elem0.loc14_8 @@ -3185,21 +3185,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.ModAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc14_5.4(%a.ref.loc14, %.loc14_8.2) // CHECK:STDOUT: %a.ref.loc16: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc16: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc16_5.1: %.ba8 = impl_witness_access constants.%BitAndAssignWith.impl_witness.80c, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.2] +// CHECK:STDOUT: %impl.elem0.loc16_5.1: %.5d7 = impl_witness_access constants.%BitAndAssignWith.impl_witness.e50, element0 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.2] // CHECK:STDOUT: %bound_method.loc16_5.1: = bound_method %a.ref.loc16, %impl.elem0.loc16_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc16: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc16_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc16 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.00c338.1] +// CHECK:STDOUT: %specific_fn.loc16: = specific_function %impl.elem0.loc16_5.1, @Cpp.long_long.as.BitAndAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.8d6e11.1] // CHECK:STDOUT: %bound_method.loc16_5.2: = bound_method %a.ref.loc16, %specific_fn.loc16 -// CHECK:STDOUT: %.loc16_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.1 = specific_constant imports.%Core.Op.c78, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.1] -// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.9d1673.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.9241d8.1] +// CHECK:STDOUT: %.loc16_5.2: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.1 = specific_constant imports.%Core.Op.a90, @Cpp.long_long.as.BitAndAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.1] +// CHECK:STDOUT: %Op.ref.loc16: %Cpp.long_long.as.BitAndAssignWith.impl.Op.type.8e2bf2.1 = name_ref Op, %.loc16_5.2 [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.ea8d6a.1] // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.bound: = bound_method %a.ref.loc16, %Op.ref.loc16 // CHECK:STDOUT: %impl.elem0.loc16_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_5.3: = bound_method %b.ref.loc16, %impl.elem0.loc16_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc16_5: init %Cpp.long_long = call %bound_method.loc16_5.3(%b.ref.loc16) // CHECK:STDOUT: %.loc16_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc16_5 // CHECK:STDOUT: %.loc16_5.4: %Cpp.long_long = converted %b.ref.loc16, %.loc16_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.00c338.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc16, @Cpp.long_long.as.BitAndAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn.8d6e11.2] // CHECK:STDOUT: %bound_method.loc16_5.4: = bound_method %a.ref.loc16, %Cpp.long_long.as.BitAndAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc16_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc16_8: = bound_method %b.ref.loc16, %impl.elem0.loc16_8 @@ -3209,21 +3209,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitAndAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc16_5.4(%a.ref.loc16, %.loc16_8.2) // CHECK:STDOUT: %a.ref.loc17: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc17: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.4fb = impl_witness_access constants.%BitOrAssignWith.impl_witness.bd2, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.2] +// CHECK:STDOUT: %impl.elem0.loc17_5.1: %.744 = impl_witness_access constants.%BitOrAssignWith.impl_witness.878, element0 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.2] // CHECK:STDOUT: %bound_method.loc17_5.1: = bound_method %a.ref.loc17, %impl.elem0.loc17_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc17: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc17 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.b0c3cb.1] +// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17_5.1, @Cpp.long_long.as.BitOrAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80f569.1] // CHECK:STDOUT: %bound_method.loc17_5.2: = bound_method %a.ref.loc17, %specific_fn.loc17 -// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.1 = specific_constant imports.%Core.Op.fa0, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.1] -// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.4196b6.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.acdb6d.1] +// CHECK:STDOUT: %.loc17_5.2: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.1 = specific_constant imports.%Core.Op.87d, @Cpp.long_long.as.BitOrAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.1] +// CHECK:STDOUT: %Op.ref.loc17: %Cpp.long_long.as.BitOrAssignWith.impl.Op.type.6483c2.1 = name_ref Op, %.loc17_5.2 [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.ba1336.1] // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.bound: = bound_method %a.ref.loc17, %Op.ref.loc17 // CHECK:STDOUT: %impl.elem0.loc17_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_5.3: = bound_method %b.ref.loc17, %impl.elem0.loc17_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc17_5: init %Cpp.long_long = call %bound_method.loc17_5.3(%b.ref.loc17) // CHECK:STDOUT: %.loc17_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc17_5 // CHECK:STDOUT: %.loc17_5.4: %Cpp.long_long = converted %b.ref.loc17, %.loc17_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.b0c3cb.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc17, @Cpp.long_long.as.BitOrAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn.80f569.2] // CHECK:STDOUT: %bound_method.loc17_5.4: = bound_method %a.ref.loc17, %Cpp.long_long.as.BitOrAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc17_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc17_8: = bound_method %b.ref.loc17, %impl.elem0.loc17_8 @@ -3233,21 +3233,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitOrAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc17_5.4(%a.ref.loc17, %.loc17_8.2) // CHECK:STDOUT: %a.ref.loc18: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc18: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc18_5.1: %.919 = impl_witness_access constants.%BitXorAssignWith.impl_witness.f91, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.2] +// CHECK:STDOUT: %impl.elem0.loc18_5.1: %.e0d = impl_witness_access constants.%BitXorAssignWith.impl_witness.de9, element0 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.2] // CHECK:STDOUT: %bound_method.loc18_5.1: = bound_method %a.ref.loc18, %impl.elem0.loc18_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc18: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc18 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.8f3086.1] +// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18_5.1, @Cpp.long_long.as.BitXorAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.e7b11a.1] // CHECK:STDOUT: %bound_method.loc18_5.2: = bound_method %a.ref.loc18, %specific_fn.loc18 -// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.1 = specific_constant imports.%Core.Op.3d4, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.1] -// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.7f7009.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.3aa346.1] +// CHECK:STDOUT: %.loc18_5.2: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.1 = specific_constant imports.%Core.Op.d1b, @Cpp.long_long.as.BitXorAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.1] +// CHECK:STDOUT: %Op.ref.loc18: %Cpp.long_long.as.BitXorAssignWith.impl.Op.type.fe202e.1 = name_ref Op, %.loc18_5.2 [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.cdbb03.1] // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.bound: = bound_method %a.ref.loc18, %Op.ref.loc18 // CHECK:STDOUT: %impl.elem0.loc18_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_5.3: = bound_method %b.ref.loc18, %impl.elem0.loc18_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc18_5: init %Cpp.long_long = call %bound_method.loc18_5.3(%b.ref.loc18) // CHECK:STDOUT: %.loc18_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc18_5 // CHECK:STDOUT: %.loc18_5.4: %Cpp.long_long = converted %b.ref.loc18, %.loc18_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.8f3086.2] +// CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc18, @Cpp.long_long.as.BitXorAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn.e7b11a.2] // CHECK:STDOUT: %bound_method.loc18_5.4: = bound_method %a.ref.loc18, %Cpp.long_long.as.BitXorAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc18_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc18_8: = bound_method %b.ref.loc18, %impl.elem0.loc18_8 @@ -3257,21 +3257,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.BitXorAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc18_5.4(%a.ref.loc18, %.loc18_8.2) // CHECK:STDOUT: %a.ref.loc19: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc19: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc19_5.1: %.64f = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.c81, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.2] +// CHECK:STDOUT: %impl.elem0.loc19_5.1: %.405 = impl_witness_access constants.%LeftShiftAssignWith.impl_witness.b1a, element0 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.2] // CHECK:STDOUT: %bound_method.loc19_5.1: = bound_method %a.ref.loc19, %impl.elem0.loc19_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc19: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc19 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1c7fb8.1] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19_5.1, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1ffb17.1] // CHECK:STDOUT: %bound_method.loc19_5.2: = bound_method %a.ref.loc19, %specific_fn.loc19 -// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.1 = specific_constant imports.%Core.Op.1b6, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.1] -// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.21cdd1.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.e91293.1] +// CHECK:STDOUT: %.loc19_5.2: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.1 = specific_constant imports.%Core.Op.d34, @Cpp.long_long.as.LeftShiftAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.1] +// CHECK:STDOUT: %Op.ref.loc19: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.type.0fc301.1 = name_ref Op, %.loc19_5.2 [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.6b432c.1] // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc19, %Op.ref.loc19 // CHECK:STDOUT: %impl.elem0.loc19_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_5.3: = bound_method %b.ref.loc19, %impl.elem0.loc19_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc19_5: init %Cpp.long_long = call %bound_method.loc19_5.3(%b.ref.loc19) // CHECK:STDOUT: %.loc19_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc19_5 // CHECK:STDOUT: %.loc19_5.4: %Cpp.long_long = converted %b.ref.loc19, %.loc19_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1c7fb8.2] +// CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc19, @Cpp.long_long.as.LeftShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn.1ffb17.2] // CHECK:STDOUT: %bound_method.loc19_5.4: = bound_method %a.ref.loc19, %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc19_9: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc19_9: = bound_method %b.ref.loc19, %impl.elem0.loc19_9 @@ -3281,21 +3281,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.long_long.as.LeftShiftAssignWith.impl.Op.call: init %empty_tuple.type = call %bound_method.loc19_5.4(%a.ref.loc19, %.loc19_9.2) // CHECK:STDOUT: %a.ref.loc20: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref.loc20: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.298 = impl_witness_access constants.%RightShiftAssignWith.impl_witness.1b7, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.2] +// CHECK:STDOUT: %impl.elem0.loc20_5.1: %.84b = impl_witness_access constants.%RightShiftAssignWith.impl_witness.2b1, element0 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.2] // CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %a.ref.loc20, %impl.elem0.loc20_5.1 // CHECK:STDOUT: %ImplicitAs.facet.loc20: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet.loc20 [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.1c2239.1] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20_5.1, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.8ae17e.1] // CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %a.ref.loc20, %specific_fn.loc20 -// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.1 = specific_constant imports.%Core.Op.bcc, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.1] -// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.0ddf2d.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.efc522.1] +// CHECK:STDOUT: %.loc20_5.2: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.1 = specific_constant imports.%Core.Op.807, @Cpp.long_long.as.RightShiftAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.1] +// CHECK:STDOUT: %Op.ref.loc20: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.type.399089.1 = name_ref Op, %.loc20_5.2 [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.5551b7.1] // CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.bound: = bound_method %a.ref.loc20, %Op.ref.loc20 // CHECK:STDOUT: %impl.elem0.loc20_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %b.ref.loc20, %impl.elem0.loc20_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc20_5: init %Cpp.long_long = call %bound_method.loc20_5.3(%b.ref.loc20) // CHECK:STDOUT: %.loc20_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc20_5 // CHECK:STDOUT: %.loc20_5.4: %Cpp.long_long = converted %b.ref.loc20, %.loc20_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.1c2239.2] +// CHECK:STDOUT: %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn: = specific_function %Op.ref.loc20, @Cpp.long_long.as.RightShiftAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn.8ae17e.2] // CHECK:STDOUT: %bound_method.loc20_5.4: = bound_method %a.ref.loc20, %Cpp.long_long.as.RightShiftAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc20_9: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc20_9: = bound_method %b.ref.loc20, %impl.elem0.loc20_9 @@ -3335,20 +3335,20 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.092: %Cpp.long_long = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.761: type = facet_type <@AddAssignWith, @AddAssignWith(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %U.ea5: %ImplicitAs.type.a03 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2 = struct_value () [symbolic] -// CHECK:STDOUT: %AddAssignWith.impl_witness.e3f: = impl_witness imports.%AddAssignWith.impl_witness_table.815, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.d69079.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.d69079.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.761 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.e3f) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.58a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.883: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.58a, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.918060.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.d69079.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.918060.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.d69079.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2 = struct_value () [symbolic] +// CHECK:STDOUT: %AddAssignWith.impl_witness.3c1: = impl_witness imports.%AddAssignWith.impl_witness_table.335, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.761 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.3c1) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.5d9: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(Core.IntLiteral, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.57c: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.5d9, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.1cd31a.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.1cd31a.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3360,9 +3360,9 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import_ref.d64: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] -// CHECK:STDOUT: %Core.import_ref.277: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.815 = impl_witness_table (%Core.import_ref.277), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.57a: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2)] +// CHECK:STDOUT: %Core.import_ref.046: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.335 = impl_witness_table (%Core.import_ref.046), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.099: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @CompoundAssignmentLongLongAndIntLiteral() { @@ -3385,21 +3385,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %a: ref %Cpp.long_long = ref_binding a, %a.var // CHECK:STDOUT: %a.ref: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %int_1.loc9: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc9_5.1: %.883 = impl_witness_access constants.%AddAssignWith.impl_witness.e3f, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d69079.2] +// CHECK:STDOUT: %impl.elem0.loc9_5.1: %.57c = impl_witness_access constants.%AddAssignWith.impl_witness.3c1, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.2] // CHECK:STDOUT: %bound_method.loc9_5.1: = bound_method %a.ref, %impl.elem0.loc9_5.1 // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.a03 = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.82e) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc9_5.1: %ImplicitAs.type.a03 = converted Core.IntLiteral, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet] -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.918060.1] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0.loc9_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.1cd31a.1] // CHECK:STDOUT: %bound_method.loc9_5.2: = bound_method %a.ref, %specific_fn -// CHECK:STDOUT: %.loc9_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.1 = specific_constant imports.%Core.Op.57a, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d69079.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.11fd63.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.d69079.1] +// CHECK:STDOUT: %.loc9_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.1 = specific_constant imports.%Core.Op.099, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.f8073b.1 = name_ref Op, %.loc9_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.8f8c91.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref // CHECK:STDOUT: %impl.elem0.loc9_5.2: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_5.3: = bound_method %int_1.loc9, %impl.elem0.loc9_5.2 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_5: init %Cpp.long_long = call %bound_method.loc9_5.3(%int_1.loc9) [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc9_5.3: %Cpp.long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc9_5 [concrete = constants.%int_1.092] // CHECK:STDOUT: %.loc9_5.4: %Cpp.long_long = converted %int_1.loc9, %.loc9_5.3 [concrete = constants.%int_1.092] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.918060.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.1cd31a.2] // CHECK:STDOUT: %bound_method.loc9_5.4: = bound_method %a.ref, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc9_8: %.a119 = impl_witness_access constants.%ImplicitAs.impl_witness.82e, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc9_8: = bound_method %int_1.loc9, %impl.elem0.loc9_8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] @@ -3455,26 +3455,26 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.41a: %i64 = int_value 1 [concrete] // CHECK:STDOUT: %AddAssignWith.type.d84: type = facet_type <@AddAssignWith, @AddAssignWith(%i64)> [concrete] // CHECK:STDOUT: %U.ea5: %ImplicitAs.type.a03 = symbolic_binding U, 0 [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1 = struct_value () [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1 = struct_value () [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%U.ea5) [symbolic] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.1b3: = impl_witness imports.%ImplicitAs.impl_witness_table.b19 [concrete] // CHECK:STDOUT: %ImplicitAs.facet.c59: %ImplicitAs.type.a03 = facet_value %i64, (%ImplicitAs.impl_witness.1b3) [concrete] -// CHECK:STDOUT: %AddAssignWith.impl_witness.767: = impl_witness imports.%AddAssignWith.impl_witness_table.815, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.2 = struct_value () [concrete] -// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.d84 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.767) [concrete] -// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.d84: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet) [concrete] -// CHECK:STDOUT: %.f7b: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.d84, %AddAssignWith.facet [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %AddAssignWith.impl_witness.c30: = impl_witness imports.%AddAssignWith.impl_witness_table.335, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.2, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = struct_value () [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.2: type = fn_type @Cpp.long_long.as.AddAssignWith.impl.Op.1, @Cpp.long_long.as.AddAssignWith.impl(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.2 = struct_value () [concrete] +// CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.d84 = facet_value %Cpp.long_long, (%AddAssignWith.impl_witness.c30) [concrete] +// CHECK:STDOUT: %AddAssignWith.WithSelf.Op.type.81a: type = fn_type @AddAssignWith.WithSelf.Op, @AddAssignWith.WithSelf(%i64, %AddAssignWith.facet) [concrete] +// CHECK:STDOUT: %.22f: type = fn_type_with_self_type %AddAssignWith.WithSelf.Op.type.81a, %AddAssignWith.facet [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.1: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2, @Cpp.long_long.as.AddAssignWith.impl.Op.1(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.653: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %.cb1: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.653, %ImplicitAs.facet.c59 [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete] // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete] -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.2: = specific_function %Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1, @Cpp.long_long.as.AddAssignWith.impl.Op.2(%ImplicitAs.facet.c59) [concrete] // CHECK:STDOUT: %Destroy.Op.type.bae255.2: type = fn_type @Destroy.Op.loc8_3.2 [concrete] // CHECK:STDOUT: %Destroy.Op.651ba6.2: %Destroy.Op.type.bae255.2 = struct_value () [concrete] // CHECK:STDOUT: } @@ -3488,9 +3488,9 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.896 = impl_witness_table (%Core.import_ref.d64), @Core.IntLiteral.as.ImplicitAs.impl.a26 [concrete] // CHECK:STDOUT: %Core.import_ref.42d: @Core.IntLiteral.as.ImplicitAs.impl.b2d.%Core.IntLiteral.as.ImplicitAs.impl.Convert.type (%Core.IntLiteral.as.ImplicitAs.impl.Convert.type.4e6) = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, loaded [symbolic = @Core.IntLiteral.as.ImplicitAs.impl.b2d.%Core.IntLiteral.as.ImplicitAs.impl.Convert (constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3c2)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.74f = impl_witness_table (%Core.import_ref.42d), @Core.IntLiteral.as.ImplicitAs.impl.b2d [concrete] -// CHECK:STDOUT: %Core.import_ref.277: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.1)] -// CHECK:STDOUT: %AddAssignWith.impl_witness_table.815 = impl_witness_table (%Core.import_ref.277), @Cpp.long_long.as.AddAssignWith.impl [concrete] -// CHECK:STDOUT: %Core.Op.57a: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.3e35db.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.cf74e0.2)] +// CHECK:STDOUT: %Core.import_ref.046: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.2 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.2 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.1)] +// CHECK:STDOUT: %AddAssignWith.impl_witness_table.335 = impl_witness_table (%Core.import_ref.046), @Cpp.long_long.as.AddAssignWith.impl [concrete] +// CHECK:STDOUT: %Core.Op.099: @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long_long.as.AddAssignWith.impl.Op.type.25d3fe.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long_long.as.AddAssignWith.impl.%Cpp.long_long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long_long.as.AddAssignWith.impl.Op.6b89af.2)] // CHECK:STDOUT: %Core.import_ref.4f4: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.b19 = impl_witness_table (%Core.import_ref.4f4), @i64.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -3528,21 +3528,21 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %b: %i64 = value_binding b, %.loc9_16.2 // CHECK:STDOUT: %a.ref: ref %Cpp.long_long = name_ref a, %a // CHECK:STDOUT: %b.ref: %i64 = name_ref b, %b -// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.f7b = impl_witness_access constants.%AddAssignWith.impl_witness.767, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.2] +// CHECK:STDOUT: %impl.elem0.loc10_5.1: %.22f = impl_witness_access constants.%AddAssignWith.impl_witness.c30, element0 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.2] // CHECK:STDOUT: %bound_method.loc10_5.1: = bound_method %a.ref, %impl.elem0.loc10_5.1 // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.a03 = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.1b3) [concrete = constants.%ImplicitAs.facet.c59] // CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.a03 = converted constants.%i64, %ImplicitAs.facet [concrete = constants.%ImplicitAs.facet.c59] -// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.1] +// CHECK:STDOUT: %specific_fn.loc10: = specific_function %impl.elem0.loc10_5.1, @Cpp.long_long.as.AddAssignWith.impl.Op.1(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.1] // CHECK:STDOUT: %bound_method.loc10_5.2: = bound_method %a.ref, %specific_fn.loc10 -// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = specific_constant imports.%Core.Op.57a, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1] -// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.2293dc.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.fa1912.1] +// CHECK:STDOUT: %.loc10_5.2: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = specific_constant imports.%Core.Op.099, @Cpp.long_long.as.AddAssignWith.impl(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1] +// CHECK:STDOUT: %Op.ref: %Cpp.long_long.as.AddAssignWith.impl.Op.type.16fdc3.1 = name_ref Op, %.loc10_5.2 [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.a8260d.1] // CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.bound: = bound_method %a.ref, %Op.ref // CHECK:STDOUT: %impl.elem0.loc10_5.2: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_5.3: = bound_method %b.ref, %impl.elem0.loc10_5.2 // CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.call.loc10_5: init %Cpp.long_long = call %bound_method.loc10_5.3(%b.ref) // CHECK:STDOUT: %.loc10_5.3: %Cpp.long_long = value_of_initializer %i64.as.ImplicitAs.impl.Convert.call.loc10_5 // CHECK:STDOUT: %.loc10_5.4: %Cpp.long_long = converted %b.ref, %.loc10_5.3 -// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.50a783.2] +// CHECK:STDOUT: %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn: = specific_function %Op.ref, @Cpp.long_long.as.AddAssignWith.impl.Op.2(constants.%ImplicitAs.facet.c59) [concrete = constants.%Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn.8a57c0.2] // CHECK:STDOUT: %bound_method.loc10_5.4: = bound_method %a.ref, %Cpp.long_long.as.AddAssignWith.impl.Op.specific_fn // CHECK:STDOUT: %impl.elem0.loc10_8: %.cb1 = impl_witness_access constants.%ImplicitAs.impl_witness.1b3, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc10_8: = bound_method %b.ref, %impl.elem0.loc10_8 @@ -3667,8 +3667,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] // CHECK:STDOUT: %ImplicitAs.type.139: type = facet_type <@ImplicitAs, @ImplicitAs(Core.IntLiteral)> [concrete] // CHECK:STDOUT: %ImplicitAs.type.584: type = facet_type <@ImplicitAs, @ImplicitAs(%u64)> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4384: = impl_witness imports.%ImplicitAs.impl_witness_table.517 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.195: %ImplicitAs.type.407 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.4384) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.438: = impl_witness imports.%ImplicitAs.impl_witness_table.517 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.195: %ImplicitAs.type.407 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.438) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3d9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet.195) [concrete] // CHECK:STDOUT: %.30f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3d9, %ImplicitAs.facet.195 [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type.bcb: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert.1 [concrete] @@ -3816,7 +3816,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %Cpp.ref.loc15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %unsigned_long_long.ref.loc15: type = name_ref unsigned_long_long, constants.%Cpp.unsigned_long_long [concrete = constants.%Cpp.unsigned_long_long] // CHECK:STDOUT: } -// CHECK:STDOUT: %impl.elem0.loc15: %.30f = impl_witness_access constants.%ImplicitAs.impl_witness.4384, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f87] +// CHECK:STDOUT: %impl.elem0.loc15: %.30f = impl_witness_access constants.%ImplicitAs.impl_witness.438, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.f87] // CHECK:STDOUT: %bound_method.loc15: = bound_method %int_1.loc15, %impl.elem0.loc15 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.4b8] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15: init %Cpp.unsigned_long_long = call %bound_method.loc15(%int_1.loc15) [concrete = constants.%int_1.79a] // CHECK:STDOUT: %.loc15_56.1: %Cpp.unsigned_long_long = value_of_initializer %Core.IntLiteral.as.ImplicitAs.impl.Convert.call.loc15 [concrete = constants.%int_1.79a] @@ -3967,8 +3967,8 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.407: type = facet_type <@ImplicitAs, @ImplicitAs(%Cpp.unsigned_long_long)> [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.4384: = impl_witness imports.%ImplicitAs.impl_witness_table.517 [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.407 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.4384) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.438: = impl_witness imports.%ImplicitAs.impl_witness_table.517 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.407 = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.438) [concrete] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3d9: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.unsigned_long_long, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: %.30f: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3d9, %ImplicitAs.facet [concrete] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.type: type = fn_type @Core.IntLiteral.as.ImplicitAs.impl.Convert [concrete] @@ -4004,7 +4004,7 @@ fn CopyUnsignedLongLong() { // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %Cpp.unsigned_long_long = var %a.var_patt // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc8: %.30f = impl_witness_access constants.%ImplicitAs.impl_witness.4384, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] +// CHECK:STDOUT: %impl.elem0.loc8: %.30f = impl_witness_access constants.%ImplicitAs.impl_witness.438, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert] // CHECK:STDOUT: %bound_method.loc8: = bound_method %int_1, %impl.elem0.loc8 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %Core.IntLiteral.as.ImplicitAs.impl.Convert.call: init %Cpp.unsigned_long_long = call %bound_method.loc8(%int_1) [concrete = constants.%int_1.79a] // CHECK:STDOUT: %.loc8_3: init %Cpp.unsigned_long_long = converted %int_1, %Core.IntLiteral.as.ImplicitAs.impl.Convert.call [concrete = constants.%int_1.79a] diff --git a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon index 4a14628d404b..eecdd445035f 100644 --- a/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/primitive_types/void_pointer.carbon @@ -254,21 +254,21 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.031604.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] // CHECK:STDOUT: %T.738: %ImplicitAs.type.031604.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.type.6c0: type = fn_type @T.binding.as_type.as.As.impl.Convert, @T.binding.as_type.as.As.impl(%U.67d, %T.738) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.8f1: %T.binding.as_type.as.As.impl.Convert.type.6c0 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.7b9: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.738) [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.cd6: %T.as_type.as.As.impl.Convert.type.7b9 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.02d: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.874)> [concrete] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.ccd: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.334(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.1ec: %ptr.as.ImplicitAs.impl.Convert.type.ccd = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.ffd: = impl_witness imports.%ImplicitAs.impl_witness_table.25e, @ptr.as.ImplicitAs.impl.334(%S) [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.02d = facet_value %ptr.5c7, (%ImplicitAs.impl_witness.ffd) [concrete] -// CHECK:STDOUT: %As.impl_witness.9e9: = impl_witness imports.%As.impl_witness_table.986, @T.binding.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.type.b2a: type = fn_type @T.binding.as_type.as.As.impl.Convert, @T.binding.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.e7d: %T.binding.as_type.as.As.impl.Convert.type.b2a = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.d24 = facet_value %ptr.5c7, (%As.impl_witness.9e9) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.23e: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.874, %As.facet) [concrete] -// CHECK:STDOUT: %.bb8: type = fn_type_with_self_type %As.WithSelf.Convert.type.23e, %As.facet [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.binding.as_type.as.As.impl.Convert.e7d, @T.binding.as_type.as.As.impl.Convert(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %As.impl_witness.eb4: = impl_witness imports.%As.impl_witness_table.03f, @T.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.c54: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.feb: %T.as_type.as.As.impl.Convert.type.c54 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.d24 = facet_value %ptr.5c7, (%As.impl_witness.eb4) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.046: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.874, %As.facet) [concrete] +// CHECK:STDOUT: %.681: type = fn_type_with_self_type %As.WithSelf.Convert.type.046, %As.facet [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.feb, @T.as_type.as.As.impl.Convert(%ptr.874, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -278,8 +278,8 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} -// CHECK:STDOUT: %Core.import_ref.bde: @T.binding.as_type.as.As.impl.%T.binding.as_type.as.As.impl.Convert.type (%T.binding.as_type.as.As.impl.Convert.type.6c0) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.As.impl.%T.binding.as_type.as.As.impl.Convert (constants.%T.binding.as_type.as.As.impl.Convert.8f1)] -// CHECK:STDOUT: %As.impl_witness_table.986 = impl_witness_table (%Core.import_ref.bde), @T.binding.as_type.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.ec5: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.7b9) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.cd6)] +// CHECK:STDOUT: %As.impl_witness_table.03f = impl_witness_table (%Core.import_ref.ec5), @T.as_type.as.As.impl [concrete] // CHECK:STDOUT: %Core.import_ref.654: @ptr.as.ImplicitAs.impl.334.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.ccd) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.334.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.1ec)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.25e = impl_witness_table (%Core.import_ref.654), @ptr.as.ImplicitAs.impl.334 [concrete] // CHECK:STDOUT: } @@ -293,12 +293,12 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_41: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.874] -// CHECK:STDOUT: %impl.elem0: %.bb8 = impl_witness_access constants.%As.impl_witness.9e9, element0 [concrete = constants.%T.binding.as_type.as.As.impl.Convert.e7d] +// CHECK:STDOUT: %impl.elem0: %.681 = impl_witness_access constants.%As.impl_witness.eb4, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.feb] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.binding.as_type.as.As.impl.Convert(constants.%ptr.874, constants.%ImplicitAs.facet) [concrete = constants.%T.binding.as_type.as.As.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.874, constants.%ImplicitAs.facet) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.call: init %ptr.874 = call %bound_method.loc10_35.2(%input.ref) -// CHECK:STDOUT: %.loc10_35.1: %ptr.874 = value_of_initializer %T.binding.as_type.as.As.impl.Convert.call +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.874 = call %bound_method.loc10_35.2(%input.ref) +// CHECK:STDOUT: %.loc10_35.1: %ptr.874 = value_of_initializer %T.as_type.as.As.impl.Convert.call // CHECK:STDOUT: %.loc10_35.2: %ptr.874 = converted %input.ref, %.loc10_35.1 // CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.874] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -321,21 +321,21 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %U.67d: type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.031604.2: type = facet_type <@ImplicitAs, @ImplicitAs(%U.67d)> [symbolic] // CHECK:STDOUT: %T.738: %ImplicitAs.type.031604.2 = symbolic_binding T, 1 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.type.6c0: type = fn_type @T.binding.as_type.as.As.impl.Convert, @T.binding.as_type.as.As.impl(%U.67d, %T.738) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.8f1: %T.binding.as_type.as.As.impl.Convert.type.6c0 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.7b9: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%U.67d, %T.738) [symbolic] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.cd6: %T.as_type.as.As.impl.Convert.type.7b9 = struct_value () [symbolic] // CHECK:STDOUT: %T.67d: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ImplicitAs.type.02d: type = facet_type <@ImplicitAs, @ImplicitAs(%ptr.874)> [concrete] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.type.ccd: type = fn_type @ptr.as.ImplicitAs.impl.Convert.1, @ptr.as.ImplicitAs.impl.334(%T.67d) [symbolic] // CHECK:STDOUT: %ptr.as.ImplicitAs.impl.Convert.1ec: %ptr.as.ImplicitAs.impl.Convert.type.ccd = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.39c: = impl_witness imports.%ImplicitAs.impl_witness_table.25e, @ptr.as.ImplicitAs.impl.334(%C) [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.02d = facet_value %ptr.31e, (%ImplicitAs.impl_witness.39c) [concrete] -// CHECK:STDOUT: %As.impl_witness.fa1: = impl_witness imports.%As.impl_witness_table.986, @T.binding.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.type.05b: type = fn_type @T.binding.as_type.as.As.impl.Convert, @T.binding.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.483: %T.binding.as_type.as.As.impl.Convert.type.05b = struct_value () [concrete] -// CHECK:STDOUT: %As.facet: %As.type.d24 = facet_value %ptr.31e, (%As.impl_witness.fa1) [concrete] -// CHECK:STDOUT: %As.WithSelf.Convert.type.056: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.874, %As.facet) [concrete] -// CHECK:STDOUT: %.99e: type = fn_type_with_self_type %As.WithSelf.Convert.type.056, %As.facet [concrete] -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.binding.as_type.as.As.impl.Convert.483, @T.binding.as_type.as.As.impl.Convert(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %As.impl_witness.5fc: = impl_witness imports.%As.impl_witness_table.03f, @T.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.type.d68: type = fn_type @T.as_type.as.As.impl.Convert, @T.as_type.as.As.impl(%ptr.874, %ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.23d: %T.as_type.as.As.impl.Convert.type.d68 = struct_value () [concrete] +// CHECK:STDOUT: %As.facet: %As.type.d24 = facet_value %ptr.31e, (%As.impl_witness.5fc) [concrete] +// CHECK:STDOUT: %As.WithSelf.Convert.type.f6d: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%ptr.874, %As.facet) [concrete] +// CHECK:STDOUT: %.8d5: type = fn_type_with_self_type %As.WithSelf.Convert.type.f6d, %As.facet [concrete] +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.specific_fn: = specific_function %T.as_type.as.As.impl.Convert.23d, @T.as_type.as.As.impl.Convert(%ptr.874, %ImplicitAs.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -343,8 +343,8 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import_ref.bde: @T.binding.as_type.as.As.impl.%T.binding.as_type.as.As.impl.Convert.type (%T.binding.as_type.as.As.impl.Convert.type.6c0) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.As.impl.%T.binding.as_type.as.As.impl.Convert (constants.%T.binding.as_type.as.As.impl.Convert.8f1)] -// CHECK:STDOUT: %As.impl_witness_table.986 = impl_witness_table (%Core.import_ref.bde), @T.binding.as_type.as.As.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.ec5: @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert.type (%T.as_type.as.As.impl.Convert.type.7b9) = import_ref Core//prelude/operators/as, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.As.impl.%T.as_type.as.As.impl.Convert (constants.%T.as_type.as.As.impl.Convert.cd6)] +// CHECK:STDOUT: %As.impl_witness_table.03f = impl_witness_table (%Core.import_ref.ec5), @T.as_type.as.As.impl [concrete] // CHECK:STDOUT: %Core.import_ref.654: @ptr.as.ImplicitAs.impl.334.%ptr.as.ImplicitAs.impl.Convert.type (%ptr.as.ImplicitAs.impl.Convert.type.ccd) = import_ref Core//prelude/types/cpp/void, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.ImplicitAs.impl.334.%ptr.as.ImplicitAs.impl.Convert (constants.%ptr.as.ImplicitAs.impl.Convert.1ec)] // CHECK:STDOUT: %ImplicitAs.impl_witness_table.25e = impl_witness_table (%Core.import_ref.654), @ptr.as.ImplicitAs.impl.334 [concrete] // CHECK:STDOUT: } @@ -358,12 +358,12 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: %Cpp.ref.loc10_38: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %void.ref.loc10_41: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %ptr.loc10_46: type = ptr_type %void.ref.loc10_41 [concrete = constants.%ptr.874] -// CHECK:STDOUT: %impl.elem0: %.99e = impl_witness_access constants.%As.impl_witness.fa1, element0 [concrete = constants.%T.binding.as_type.as.As.impl.Convert.483] +// CHECK:STDOUT: %impl.elem0: %.8d5 = impl_witness_access constants.%As.impl_witness.5fc, element0 [concrete = constants.%T.as_type.as.As.impl.Convert.23d] // CHECK:STDOUT: %bound_method.loc10_35.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.binding.as_type.as.As.impl.Convert(constants.%ptr.874, constants.%ImplicitAs.facet) [concrete = constants.%T.binding.as_type.as.As.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @T.as_type.as.As.impl.Convert(constants.%ptr.874, constants.%ImplicitAs.facet) [concrete = constants.%T.as_type.as.As.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_35.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %T.binding.as_type.as.As.impl.Convert.call: init %ptr.874 = call %bound_method.loc10_35.2(%input.ref) -// CHECK:STDOUT: %.loc10_35.1: %ptr.874 = value_of_initializer %T.binding.as_type.as.As.impl.Convert.call +// CHECK:STDOUT: %T.as_type.as.As.impl.Convert.call: init %ptr.874 = call %bound_method.loc10_35.2(%input.ref) +// CHECK:STDOUT: %.loc10_35.1: %ptr.874 = value_of_initializer %T.as_type.as.As.impl.Convert.call // CHECK:STDOUT: %.loc10_35.2: %ptr.874 = converted %input.ref, %.loc10_35.1 // CHECK:STDOUT: %.loc10_25: type = splice_block %ptr.loc10_25 [concrete = constants.%ptr.874] { // CHECK:STDOUT: %Cpp.ref.loc10_17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] diff --git a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon index 6e2250636388..af0025d0c543 100644 --- a/toolchain/check/testdata/interop/cpp/template/argument_count.carbon +++ b/toolchain/check/testdata/interop/cpp/template/argument_count.carbon @@ -126,19 +126,19 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2e3: = custom_witness (%TwoTypes.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.c59: %Default.type = facet_value %TwoTypes, (%custom_witness.2e3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fcc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.fcc) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b6a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.b6a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -152,14 +152,14 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.fcc) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.b6a) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] // CHECK:STDOUT: // CHECK:STDOUT: %.loc7_1: ref %TwoTypes = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign file.%x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign file.%x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -171,43 +171,43 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %TypePack.Op.type.c6ed4b.1: type = fn_type @TypePack.Op.1 [concrete] // CHECK:STDOUT: %TypePack.Op.4bf03f.1: %TypePack.Op.type.c6ed4b.1 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.969c90.1: = custom_witness (%TypePack.Op.4bf03f.1), @Default [concrete] // CHECK:STDOUT: %Default.facet.314ffa.1: %Default.type = facet_value %TypePack.49edc4.1, (%custom_witness.969c90.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fd05a0.1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.1) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.7756c0.1: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.1, (%DefaultOrUnformed.impl_witness.fd05a0.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.702edc.1: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.1) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.126997.1: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.1, (%DefaultOrUnformed.impl_witness.702edc.1) [concrete] // CHECK:STDOUT: %TypePack.49edc4.2: type = class_type @TypePack.2 [concrete] // CHECK:STDOUT: %pattern_type.9db866.2: type = pattern_type %TypePack.49edc4.2 [concrete] // CHECK:STDOUT: %TypePack.Op.type.c6ed4b.2: type = fn_type @TypePack.Op.2 [concrete] // CHECK:STDOUT: %TypePack.Op.4bf03f.2: %TypePack.Op.type.c6ed4b.2 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.969c90.2: = custom_witness (%TypePack.Op.4bf03f.2), @Default [concrete] // CHECK:STDOUT: %Default.facet.314ffa.2: %Default.type = facet_value %TypePack.49edc4.2, (%custom_witness.969c90.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fd05a0.2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.2) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.7756c0.2: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.2, (%DefaultOrUnformed.impl_witness.fd05a0.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.702edc.2: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.2) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.126997.2: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.2, (%DefaultOrUnformed.impl_witness.702edc.2) [concrete] // CHECK:STDOUT: %TypePack.49edc4.3: type = class_type @TypePack.3 [concrete] // CHECK:STDOUT: %pattern_type.9db866.3: type = pattern_type %TypePack.49edc4.3 [concrete] // CHECK:STDOUT: %TypePack.Op.type.c6ed4b.3: type = fn_type @TypePack.Op.3 [concrete] // CHECK:STDOUT: %TypePack.Op.4bf03f.3: %TypePack.Op.type.c6ed4b.3 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.969c90.3: = custom_witness (%TypePack.Op.4bf03f.3), @Default [concrete] // CHECK:STDOUT: %Default.facet.314ffa.3: %Default.type = facet_value %TypePack.49edc4.3, (%custom_witness.969c90.3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fd05a0.3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.7756c0.3: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.3, (%DefaultOrUnformed.impl_witness.fd05a0.3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.702edc.3: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.3) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.126997.3: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.3, (%DefaultOrUnformed.impl_witness.702edc.3) [concrete] // CHECK:STDOUT: %TypePack.49edc4.4: type = class_type @TypePack.4 [concrete] // CHECK:STDOUT: %pattern_type.9db866.4: type = pattern_type %TypePack.49edc4.4 [concrete] // CHECK:STDOUT: %TypePack.Op.type.c6ed4b.4: type = fn_type @TypePack.Op.4 [concrete] // CHECK:STDOUT: %TypePack.Op.4bf03f.4: %TypePack.Op.type.c6ed4b.4 = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.969c90.4: = custom_witness (%TypePack.Op.4bf03f.4), @Default [concrete] // CHECK:STDOUT: %Default.facet.314ffa.4: %Default.type = facet_value %TypePack.49edc4.4, (%custom_witness.969c90.4) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fd05a0.4: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.4) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet.7756c0.4: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.4, (%DefaultOrUnformed.impl_witness.fd05a0.4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.702edc.4: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.314ffa.4) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet.126997.4: %DefaultOrUnformed.type = facet_value %TypePack.49edc4.4, (%DefaultOrUnformed.impl_witness.702edc.4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -239,38 +239,38 @@ var too_many: Cpp.FixedSizePack(Cpp.A, Cpp.A).Inner(Cpp.B, Cpp.B, Cpp.B); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.1, (constants.%DefaultOrUnformed.impl_witness.fd05a0.1) [concrete = constants.%DefaultOrUnformed.facet.7756c0.1] -// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.1, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.7756c0.1] +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc7: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.1, (constants.%DefaultOrUnformed.impl_witness.702edc.1) [concrete = constants.%DefaultOrUnformed.facet.126997.1] +// CHECK:STDOUT: %.loc7_23.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.1, %DefaultOrUnformed.facet.loc7 [concrete = constants.%DefaultOrUnformed.facet.126997.1] // CHECK:STDOUT: %as_type.loc7: type = facet_access_type %.loc7_23.1 [concrete = constants.%TypePack.49edc4.1] // CHECK:STDOUT: %.loc7_23.2: type = converted %.loc7_23.1, %as_type.loc7 [concrete = constants.%TypePack.49edc4.1] // CHECK:STDOUT: // CHECK:STDOUT: %.loc7_1: ref %TypePack.49edc4.1 = splice_block file.%a0.var [concrete = file.%a0.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.49edc4.1 to %.loc7_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() -// CHECK:STDOUT: assign file.%a0.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc7 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.2, (constants.%DefaultOrUnformed.impl_witness.fd05a0.2) [concrete = constants.%DefaultOrUnformed.facet.7756c0.2] -// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.2, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.7756c0.2] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7: init %TypePack.49edc4.1 to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.1() +// CHECK:STDOUT: assign file.%a0.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc7 +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc8: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.2, (constants.%DefaultOrUnformed.impl_witness.702edc.2) [concrete = constants.%DefaultOrUnformed.facet.126997.2] +// CHECK:STDOUT: %.loc8_28.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.2, %DefaultOrUnformed.facet.loc8 [concrete = constants.%DefaultOrUnformed.facet.126997.2] // CHECK:STDOUT: %as_type.loc8: type = facet_access_type %.loc8_28.1 [concrete = constants.%TypePack.49edc4.2] // CHECK:STDOUT: %.loc8_28.2: type = converted %.loc8_28.1, %as_type.loc8 [concrete = constants.%TypePack.49edc4.2] // CHECK:STDOUT: // CHECK:STDOUT: %.loc8_1: ref %TypePack.49edc4.2 = splice_block file.%a1.var [concrete = file.%a1.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.49edc4.2 to %.loc8_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() -// CHECK:STDOUT: assign file.%a1.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.3, (constants.%DefaultOrUnformed.impl_witness.fd05a0.3) [concrete = constants.%DefaultOrUnformed.facet.7756c0.3] -// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.3, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.7756c0.3] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8: init %TypePack.49edc4.2 to %.loc8_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.2() +// CHECK:STDOUT: assign file.%a1.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc8 +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc9: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.3, (constants.%DefaultOrUnformed.impl_witness.702edc.3) [concrete = constants.%DefaultOrUnformed.facet.126997.3] +// CHECK:STDOUT: %.loc9_35.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.3, %DefaultOrUnformed.facet.loc9 [concrete = constants.%DefaultOrUnformed.facet.126997.3] // CHECK:STDOUT: %as_type.loc9: type = facet_access_type %.loc9_35.1 [concrete = constants.%TypePack.49edc4.3] // CHECK:STDOUT: %.loc9_35.2: type = converted %.loc9_35.1, %as_type.loc9 [concrete = constants.%TypePack.49edc4.3] // CHECK:STDOUT: // CHECK:STDOUT: %.loc9_1: ref %TypePack.49edc4.3 = splice_block file.%a2.var [concrete = file.%a2.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.49edc4.3 to %.loc9_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() -// CHECK:STDOUT: assign file.%a2.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc9 -// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.4, (constants.%DefaultOrUnformed.impl_witness.fd05a0.4) [concrete = constants.%DefaultOrUnformed.facet.7756c0.4] -// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.4, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.7756c0.4] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9: init %TypePack.49edc4.3 to %.loc9_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.3() +// CHECK:STDOUT: assign file.%a2.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc9 +// CHECK:STDOUT: %DefaultOrUnformed.facet.loc10: %DefaultOrUnformed.type = facet_value constants.%TypePack.49edc4.4, (constants.%DefaultOrUnformed.impl_witness.702edc.4) [concrete = constants.%DefaultOrUnformed.facet.126997.4] +// CHECK:STDOUT: %.loc10_42.1: %DefaultOrUnformed.type = converted constants.%TypePack.49edc4.4, %DefaultOrUnformed.facet.loc10 [concrete = constants.%DefaultOrUnformed.facet.126997.4] // CHECK:STDOUT: %as_type.loc10: type = facet_access_type %.loc10_42.1 [concrete = constants.%TypePack.49edc4.4] // CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, %as_type.loc10 [concrete = constants.%TypePack.49edc4.4] // CHECK:STDOUT: // CHECK:STDOUT: %.loc10_1: ref %TypePack.49edc4.4 = splice_block file.%a3.var [concrete = file.%a3.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.49edc4.4 to %.loc10_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() -// CHECK:STDOUT: assign file.%a3.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call.loc10 +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10: init %TypePack.49edc4.4 to %.loc10_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn.4() +// CHECK:STDOUT: assign file.%a3.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call.loc10 // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon index bf756fd47559..b464a1215f3d 100644 --- a/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/template_template_param.carbon @@ -88,19 +88,19 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %TwoTemplates.Op.type: type = fn_type @TwoTemplates.Op [concrete] // CHECK:STDOUT: %TwoTemplates.Op: %TwoTemplates.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.6e5: = custom_witness (%TwoTemplates.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.90a: %Default.type = facet_value %TwoTemplates, (%custom_witness.6e5) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.18b: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.90a) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.18b) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.7cb: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.90a) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTemplates, (%DefaultOrUnformed.impl_witness.7cb) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -114,14 +114,14 @@ var x: Cpp.TwoTemplates(Cpp.A, true); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.18b) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTemplates, (constants.%DefaultOrUnformed.impl_witness.7cb) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_38.1: %DefaultOrUnformed.type = converted constants.%TwoTemplates, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_38.1 [concrete = constants.%TwoTemplates] // CHECK:STDOUT: %.loc7_38.2: type = converted %.loc7_38.1, %as_type [concrete = constants.%TwoTemplates] // CHECK:STDOUT: // CHECK:STDOUT: %.loc7_1: ref %TwoTemplates = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTemplates to %.loc7_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign file.%x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTemplates to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign file.%x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/template/type_param.carbon b/toolchain/check/testdata/interop/cpp/template/type_param.carbon index a2fe5f0a1c91..ec98c1aaee33 100644 --- a/toolchain/check/testdata/interop/cpp/template/type_param.carbon +++ b/toolchain/check/testdata/interop/cpp/template/type_param.carbon @@ -72,19 +72,19 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2e3: = custom_witness (%TwoTypes.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.c59: %Default.type = facet_value %TwoTypes, (%custom_witness.2e3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fcc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.fcc) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b6a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.b6a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -98,14 +98,14 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.fcc) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.b6a) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_34.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_34.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_34.2: type = converted %.loc7_34.1, %as_type [concrete = constants.%TwoTypes] // CHECK:STDOUT: // CHECK:STDOUT: %.loc7_1: ref %TwoTypes = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign file.%x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign file.%x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -117,19 +117,19 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: %DefaultOrUnformed.type: type = facet_type <@DefaultOrUnformed> [concrete] // CHECK:STDOUT: %Default.type: type = facet_type <@Default> [concrete] // CHECK:STDOUT: %T.50c: %Default.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1: type = fn_type @T.binding.as_type.as.DefaultOrUnformed.impl.Op, @T.binding.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.185: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1 = struct_value () [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b: type = fn_type @T.as_type.as.DefaultOrUnformed.impl.Op, @T.as_type.as.DefaultOrUnformed.impl(%T.50c) [symbolic] +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.fcf: %T.as_type.as.DefaultOrUnformed.impl.Op.type.84b = struct_value () [symbolic] // CHECK:STDOUT: %TwoTypes.Op.type: type = fn_type @TwoTypes.Op [concrete] // CHECK:STDOUT: %TwoTypes.Op: %TwoTypes.Op.type = struct_value () [concrete] // CHECK:STDOUT: %custom_witness.2e3: = custom_witness (%TwoTypes.Op), @Default [concrete] // CHECK:STDOUT: %Default.facet.c59: %Default.type = facet_value %TwoTypes, (%custom_witness.2e3) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.fcc: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.608, @T.binding.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.fcc) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness.b6a: = impl_witness imports.%DefaultOrUnformed.impl_witness_table.16f, @T.as_type.as.DefaultOrUnformed.impl(%Default.facet.c59) [concrete] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value %TwoTypes, (%DefaultOrUnformed.impl_witness.b6a) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core.import_ref.9c6: @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type (%T.binding.as_type.as.DefaultOrUnformed.impl.Op.type.8d1) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.DefaultOrUnformed.impl.%T.binding.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.binding.as_type.as.DefaultOrUnformed.impl.Op.185)] -// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.608 = impl_witness_table (%Core.import_ref.9c6), @T.binding.as_type.as.DefaultOrUnformed.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.627: @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op.type (%T.as_type.as.DefaultOrUnformed.impl.Op.type.84b) = import_ref Core//prelude/parts/default, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.DefaultOrUnformed.impl.%T.as_type.as.DefaultOrUnformed.impl.Op (constants.%T.as_type.as.DefaultOrUnformed.impl.Op.fcf)] +// CHECK:STDOUT: %DefaultOrUnformed.impl_witness_table.16f = impl_witness_table (%Core.import_ref.627), @T.as_type.as.DefaultOrUnformed.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -143,14 +143,14 @@ var x: Cpp.TwoTypes(Cpp.A, {}); // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.fcc) [concrete = constants.%DefaultOrUnformed.facet] +// CHECK:STDOUT: %DefaultOrUnformed.facet: %DefaultOrUnformed.type = facet_value constants.%TwoTypes, (constants.%DefaultOrUnformed.impl_witness.b6a) [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %.loc7_32.1: %DefaultOrUnformed.type = converted constants.%TwoTypes, %DefaultOrUnformed.facet [concrete = constants.%DefaultOrUnformed.facet] // CHECK:STDOUT: %as_type: type = facet_access_type %.loc7_32.1 [concrete = constants.%TwoTypes] // CHECK:STDOUT: %.loc7_32.2: type = converted %.loc7_32.1, %as_type [concrete = constants.%TwoTypes] // CHECK:STDOUT: // CHECK:STDOUT: %.loc7_1: ref %TwoTypes = splice_block file.%x.var [concrete = file.%x.var] {} -// CHECK:STDOUT: %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.binding.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() -// CHECK:STDOUT: assign file.%x.var, %T.binding.as_type.as.DefaultOrUnformed.impl.Op.call +// CHECK:STDOUT: %T.as_type.as.DefaultOrUnformed.impl.Op.call: init %TwoTypes to %.loc7_1 = call %T.as_type.as.DefaultOrUnformed.impl.Op.specific_fn() +// CHECK:STDOUT: assign file.%x.var, %T.as_type.as.DefaultOrUnformed.impl.Op.call // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/named_constraint/convert.carbon b/toolchain/check/testdata/named_constraint/convert.carbon index c567b1e1f277..3cf8c00c7cf6 100644 --- a/toolchain/check/testdata/named_constraint/convert.carbon +++ b/toolchain/check/testdata/named_constraint/convert.carbon @@ -136,8 +136,8 @@ fn G(T:! Z) { // CHECK:STDOUT: %T.f45530.2: %E2.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %G.type: type = fn_type @G [concrete] // CHECK:STDOUT: %G: %G.type = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.f45530.2 [symbolic] -// CHECK:STDOUT: %E1.facet: %E1.type = facet_value %T.binding.as_type, () [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f45530.2 [symbolic] +// CHECK:STDOUT: %E1.facet: %E1.type = facet_value %T.as_type, () [symbolic] // CHECK:STDOUT: %F.specific_fn: = specific_function %F, @F(%E1.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -157,16 +157,16 @@ fn G(T:! Z) { // CHECK:STDOUT: %T.loc9_7.1: %E2.type = symbolic_binding T, 0 [symbolic = %T.loc9_7.1 (constants.%T.f45530.2)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc9_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %E1.facet.loc10_6.2: %E1.type = facet_value %T.binding.as_type, () [symbolic = %E1.facet.loc10_6.2 (constants.%E1.facet)] +// CHECK:STDOUT: %T.as_type.loc10_6.2: type = facet_access_type %T.loc9_7.1 [symbolic = %T.as_type.loc10_6.2 (constants.%T.as_type)] +// CHECK:STDOUT: %E1.facet.loc10_6.2: %E1.type = facet_value %T.as_type.loc10_6.2, () [symbolic = %E1.facet.loc10_6.2 (constants.%E1.facet)] // CHECK:STDOUT: %F.specific_fn.loc10_3.2: = specific_function constants.%F, @F(%E1.facet.loc10_6.2) [symbolic = %F.specific_fn.loc10_3.2 (constants.%F.specific_fn)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref: %E2.type = name_ref T, %T.loc9_7.2 [symbolic = %T.loc9_7.1 (constants.%T.f45530.2)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %E1.facet.loc10_6.1: %E1.type = facet_value %T.as_type, () [symbolic = %E1.facet.loc10_6.2 (constants.%E1.facet)] +// CHECK:STDOUT: %T.as_type.loc10_6.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc10_6.2 (constants.%T.as_type)] +// CHECK:STDOUT: %E1.facet.loc10_6.1: %E1.type = facet_value %T.as_type.loc10_6.1, () [symbolic = %E1.facet.loc10_6.2 (constants.%E1.facet)] // CHECK:STDOUT: %.loc10: %E1.type = converted %T.ref, %E1.facet.loc10_6.1 [symbolic = %E1.facet.loc10_6.2 (constants.%E1.facet)] // CHECK:STDOUT: %F.specific_fn.loc10_3.1: = specific_function %F.ref, @F(constants.%E1.facet) [symbolic = %F.specific_fn.loc10_3.2 (constants.%F.specific_fn)] // CHECK:STDOUT: %F.call: init %empty_tuple.type = call %F.specific_fn.loc10_3.1() diff --git a/toolchain/check/testdata/named_constraint/empty.carbon b/toolchain/check/testdata/named_constraint/empty.carbon index 36f9bd144564..7c8f687dd0d9 100644 --- a/toolchain/check/testdata/named_constraint/empty.carbon +++ b/toolchain/check/testdata/named_constraint/empty.carbon @@ -54,9 +54,9 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %F.specific_fn.da7: = specific_function %F, @F(%Empty.facet.76f) [concrete] // CHECK:STDOUT: %Empty.facet.2cb: %Empty.type = facet_value type, () [concrete] // CHECK:STDOUT: %F.specific_fn.9dd: = specific_function %F, @F(%Empty.facet.2cb) [concrete] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.ea3 [symbolic] -// CHECK:STDOUT: %Empty.facet.4f8: %Empty.type = facet_value %T.binding.as_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.e9f: = specific_function %F, @F(%Empty.facet.4f8) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ea3 [symbolic] +// CHECK:STDOUT: %Empty.facet.826: %Empty.type = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %F.specific_fn.1ab: = specific_function %F, @F(%Empty.facet.826) [symbolic] // CHECK:STDOUT: %Empty.facet.380: %Empty.type = facet_value %U, () [symbolic] // CHECK:STDOUT: %F.specific_fn.ed0: = specific_function %F, @F(%Empty.facet.380) [symbolic] // CHECK:STDOUT: %F.specific_fn.e30: = specific_function %F, @F(%V) [symbolic] @@ -112,9 +112,9 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %V.loc25_24.1: %Empty.type = symbolic_binding V, 2 [symbolic = %V.loc25_24.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc25_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Empty.facet.loc28_6.2: %Empty.type = facet_value %T.binding.as_type, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %F.specific_fn.loc28_3.2: = specific_function constants.%F, @F(%Empty.facet.loc28_6.2) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.e9f)] +// CHECK:STDOUT: %T.as_type.loc28_6.2: type = facet_access_type %T.loc25_7.1 [symbolic = %T.as_type.loc28_6.2 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.facet.loc28_6.2: %Empty.type = facet_value %T.as_type.loc28_6.2, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %F.specific_fn.loc28_3.2: = specific_function constants.%F, @F(%Empty.facet.loc28_6.2) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.1ab)] // CHECK:STDOUT: %Empty.facet.loc29_6.2: %Empty.type = facet_value %U.loc25_14.1, () [symbolic = %Empty.facet.loc29_6.2 (constants.%Empty.facet.380)] // CHECK:STDOUT: %F.specific_fn.loc29_3.2: = specific_function constants.%F, @F(%Empty.facet.loc29_6.2) [symbolic = %F.specific_fn.loc29_3.2 (constants.%F.specific_fn.ed0)] // CHECK:STDOUT: %F.specific_fn.loc30_3.2: = specific_function constants.%F, @F(%V.loc25_24.1) [symbolic = %F.specific_fn.loc30_3.2 (constants.%F.specific_fn.e30)] @@ -135,10 +135,10 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: %F.call.loc27: init %empty_tuple.type = call %F.specific_fn.loc27() // CHECK:STDOUT: %F.ref.loc28: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref: %Z.type = name_ref T, %T.loc25_7.2 [symbolic = %T.loc25_7.1 (constants.%T.ea3)] -// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ref [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Empty.facet.loc28_6.1: %Empty.type = facet_value %T.as_type, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %.loc28: %Empty.type = converted %T.ref, %Empty.facet.loc28_6.1 [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %F.specific_fn.loc28_3.1: = specific_function %F.ref.loc28, @F(constants.%Empty.facet.4f8) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.e9f)] +// CHECK:STDOUT: %T.as_type.loc28_6.1: type = facet_access_type %T.ref [symbolic = %T.as_type.loc28_6.2 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.facet.loc28_6.1: %Empty.type = facet_value %T.as_type.loc28_6.1, () [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %.loc28: %Empty.type = converted %T.ref, %Empty.facet.loc28_6.1 [symbolic = %Empty.facet.loc28_6.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %F.specific_fn.loc28_3.1: = specific_function %F.ref.loc28, @F(constants.%Empty.facet.826) [symbolic = %F.specific_fn.loc28_3.2 (constants.%F.specific_fn.1ab)] // CHECK:STDOUT: %F.call.loc28: init %empty_tuple.type = call %F.specific_fn.loc28_3.1() // CHECK:STDOUT: %F.ref.loc29: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %U.ref: type = name_ref U, %U.loc25_14.2 [symbolic = %U.loc25_14.1 (constants.%U)] @@ -176,8 +176,8 @@ fn G(T:! Z, U:! type, V:! Empty) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%Empty.facet.4f8) { -// CHECK:STDOUT: %T.loc19_14.1 => constants.%Empty.facet.4f8 +// CHECK:STDOUT: specific @F(constants.%Empty.facet.826) { +// CHECK:STDOUT: %T.loc19_14.1 => constants.%Empty.facet.826 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/named_constraint/empty_generic.carbon b/toolchain/check/testdata/named_constraint/empty_generic.carbon index 4496947c91d5..987a95b37531 100644 --- a/toolchain/check/testdata/named_constraint/empty_generic.carbon +++ b/toolchain/check/testdata/named_constraint/empty_generic.carbon @@ -44,8 +44,8 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: %pattern_type.22b: type = pattern_type %Z.type [concrete] // CHECK:STDOUT: %T.ea3: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.ea3 [symbolic] -// CHECK:STDOUT: %Empty.type.d682d6.2: type = facet_type <@Empty, @Empty(%T.binding.as_type)> [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ea3 [symbolic] +// CHECK:STDOUT: %Empty.type.d682d6.2: type = facet_type <@Empty, @Empty(%T.as_type)> [symbolic] // CHECK:STDOUT: %pattern_type.9a587c.2: type = pattern_type %Empty.type.d682d6.2 [symbolic] // CHECK:STDOUT: %U.e1f642.2: %Empty.type.d682d6.2 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %V: type = symbolic_binding V, 2 [symbolic] @@ -55,17 +55,17 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %empty_struct.a40: %empty_struct_type = struct_value () [concrete] // CHECK:STDOUT: %empty_struct.type.facet: %type = facet_value %empty_struct_type, () [concrete] // CHECK:STDOUT: %Empty.facet.76f: %Empty.type.d682d6.2 = facet_value %empty_struct_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.5f9: = specific_function %F, @F(%T.binding.as_type, %Empty.facet.76f) [symbolic] +// CHECK:STDOUT: %F.specific_fn.b60: = specific_function %F, @F(%T.as_type, %Empty.facet.76f) [symbolic] // CHECK:STDOUT: %facet_value.2cb: %type = facet_value type, () [concrete] // CHECK:STDOUT: %Empty.facet.2cb: %Empty.type.d682d6.2 = facet_value type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.ff8: = specific_function %F, @F(%T.binding.as_type, %Empty.facet.2cb) [symbolic] -// CHECK:STDOUT: %Empty.facet.4f8: %Empty.type.d682d6.2 = facet_value %T.binding.as_type, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.55f: = specific_function %F, @F(%T.binding.as_type, %Empty.facet.4f8) [symbolic] +// CHECK:STDOUT: %F.specific_fn.992: = specific_function %F, @F(%T.as_type, %Empty.facet.2cb) [symbolic] +// CHECK:STDOUT: %Empty.facet.826: %Empty.type.d682d6.2 = facet_value %T.as_type, () [symbolic] +// CHECK:STDOUT: %F.specific_fn.900: = specific_function %F, @F(%T.as_type, %Empty.facet.826) [symbolic] // CHECK:STDOUT: %Self.31c17c.2: %Empty.type.d682d6.2 = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %F.specific_fn.5c5: = specific_function %F, @F(%T.binding.as_type, %U.e1f642.2) [symbolic] +// CHECK:STDOUT: %F.specific_fn.1fe: = specific_function %F, @F(%T.as_type, %U.e1f642.2) [symbolic] // CHECK:STDOUT: %facet_value.ed5: %type = facet_value %V, () [symbolic] // CHECK:STDOUT: %Empty.facet.ed5: %Empty.type.d682d6.2 = facet_value %V, () [symbolic] -// CHECK:STDOUT: %F.specific_fn.bb1: = specific_function %F, @F(%T.binding.as_type, %Empty.facet.ed5) [symbolic] +// CHECK:STDOUT: %F.specific_fn.0b3: = specific_function %F, @F(%T.as_type, %Empty.facet.ed5) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -109,9 +109,9 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: %Empty.ref: %Empty.type.19a = name_ref Empty, file.%Empty.decl [concrete = constants.%empty_struct.019] // CHECK:STDOUT: %T.ref.loc20: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] -// CHECK:STDOUT: %T.as_type.loc20: type = facet_access_type %T.ref.loc20 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc20_24.2: type = converted %T.ref.loc20, %T.as_type.loc20 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Empty.type.loc20_24.2: type = facet_type <@Empty, @Empty(constants.%T.binding.as_type)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] +// CHECK:STDOUT: %T.as_type.loc20_24.2: type = facet_access_type %T.ref.loc20 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc20_24.2: type = converted %T.ref.loc20, %T.as_type.loc20_24.2 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.type.loc20_24.2: type = facet_type <@Empty, @Empty(constants.%T.as_type)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] // CHECK:STDOUT: } // CHECK:STDOUT: %U.loc20_14.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = symbolic_binding U, 1 [symbolic = %U.loc20_14.1 (constants.%U.e1f642.2)] // CHECK:STDOUT: %.loc20_31.1: type = splice_block %.loc20_31.2 [concrete = type] { @@ -156,22 +156,22 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: generic fn @G(%T.loc20_7.2: %Z.type, %U.loc20_14.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2), %V.loc20_28.2: type) { // CHECK:STDOUT: %T.loc20_7.1: %Z.type = symbolic_binding T, 0 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc20_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Empty.type.loc20_24.1: type = facet_type <@Empty, @Empty(%T.binding.as_type)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] +// CHECK:STDOUT: %T.as_type.loc20_24.1: type = facet_access_type %T.loc20_7.1 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.type.loc20_24.1: type = facet_type <@Empty, @Empty(%T.as_type.loc20_24.1)> [symbolic = %Empty.type.loc20_24.1 (constants.%Empty.type.d682d6.2)] // CHECK:STDOUT: %U.loc20_14.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = symbolic_binding U, 1 [symbolic = %U.loc20_14.1 (constants.%U.e1f642.2)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Empty.type.loc20_24.1 [symbolic = %pattern_type (constants.%pattern_type.9a587c.2)] // CHECK:STDOUT: %V.loc20_28.1: type = symbolic_binding V, 2 [symbolic = %V.loc20_28.1 (constants.%V)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Empty.facet.loc21_18.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%empty_struct_type, () [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] -// CHECK:STDOUT: %F.specific_fn.loc21_3.2: = specific_function constants.%F, @F(%T.binding.as_type, %Empty.facet.loc21_18.2) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.5f9)] +// CHECK:STDOUT: %F.specific_fn.loc21_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc21_18.2) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.b60)] // CHECK:STDOUT: %Empty.facet.loc22_12.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value type, () [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] -// CHECK:STDOUT: %F.specific_fn.loc22_3.2: = specific_function constants.%F, @F(%T.binding.as_type, %Empty.facet.loc22_12.2) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.ff8)] -// CHECK:STDOUT: %Empty.facet.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.binding.as_type, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %F.specific_fn.loc23_3.2: = specific_function constants.%F, @F(%T.binding.as_type, %Empty.facet.loc23_9.2) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.55f)] -// CHECK:STDOUT: %F.specific_fn.loc24_3.2: = specific_function constants.%F, @F(%T.binding.as_type, %U.loc20_14.1) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.5c5)] +// CHECK:STDOUT: %F.specific_fn.loc22_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc22_12.2) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.992)] +// CHECK:STDOUT: %Empty.facet.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc20_24.1, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %F.specific_fn.loc23_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc23_9.2) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.900)] +// CHECK:STDOUT: %F.specific_fn.loc24_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %U.loc20_14.1) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.1fe)] // CHECK:STDOUT: %Empty.facet.loc25_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %V.loc20_28.1, () [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] -// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.binding.as_type, %Empty.facet.loc25_9.2) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.bb1)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.2: = specific_function constants.%F, @F(%T.as_type.loc20_24.1, %Empty.facet.loc25_9.2) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.0b3)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -180,46 +180,46 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %.loc21_9: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct.a40] // CHECK:STDOUT: %.loc21_14: type = type_literal type [concrete = type] // CHECK:STDOUT: %.loc21_11: type = converted %.loc21_9, constants.%empty_struct_type [concrete = constants.%empty_struct_type] -// CHECK:STDOUT: %T.as_type.loc21: type = facet_access_type %T.ref.loc21 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc21_18.1: type = converted %T.ref.loc21, %T.as_type.loc21 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc21: type = facet_access_type %T.ref.loc21 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc21_18.1: type = converted %T.ref.loc21, %T.as_type.loc21 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc21_18.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%empty_struct_type, () [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] // CHECK:STDOUT: %.loc21_18.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%empty_struct_type, %Empty.facet.loc21_18.1 [symbolic = %Empty.facet.loc21_18.2 (constants.%Empty.facet.76f)] -// CHECK:STDOUT: %F.specific_fn.loc21_3.1: = specific_function %F.ref.loc21, @F(constants.%T.binding.as_type, constants.%Empty.facet.76f) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.5f9)] +// CHECK:STDOUT: %F.specific_fn.loc21_3.1: = specific_function %F.ref.loc21, @F(constants.%T.as_type, constants.%Empty.facet.76f) [symbolic = %F.specific_fn.loc21_3.2 (constants.%F.specific_fn.b60)] // CHECK:STDOUT: %F.call.loc21: init %empty_tuple.type = call %F.specific_fn.loc21_3.1() // CHECK:STDOUT: %F.ref.loc22: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref.loc22: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] // CHECK:STDOUT: %.loc22_8: type = type_literal type [concrete = type] -// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc22_12.1: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc22: type = facet_access_type %T.ref.loc22 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc22_12.1: type = converted %T.ref.loc22, %T.as_type.loc22 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc22_12.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value type, () [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] // CHECK:STDOUT: %.loc22_12.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted type, %Empty.facet.loc22_12.1 [symbolic = %Empty.facet.loc22_12.2 (constants.%Empty.facet.2cb)] -// CHECK:STDOUT: %F.specific_fn.loc22_3.1: = specific_function %F.ref.loc22, @F(constants.%T.binding.as_type, constants.%Empty.facet.2cb) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.ff8)] +// CHECK:STDOUT: %F.specific_fn.loc22_3.1: = specific_function %F.ref.loc22, @F(constants.%T.as_type, constants.%Empty.facet.2cb) [symbolic = %F.specific_fn.loc22_3.2 (constants.%F.specific_fn.992)] // CHECK:STDOUT: %F.call.loc22: init %empty_tuple.type = call %F.specific_fn.loc22_3.1() // CHECK:STDOUT: %F.ref.loc23: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref.loc23_5: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] // CHECK:STDOUT: %T.ref.loc23_8: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] -// CHECK:STDOUT: %T.as_type.loc23_9.1: type = facet_access_type %T.ref.loc23_5 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc23_9.1: type = converted %T.ref.loc23_5, %T.as_type.loc23_9.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %T.as_type.loc23_9.2: type = facet_access_type constants.%T.ea3 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Empty.facet.loc23_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc23_9.2, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%T.ea3, %Empty.facet.loc23_9.1 [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.4f8)] -// CHECK:STDOUT: %F.specific_fn.loc23_3.1: = specific_function %F.ref.loc23, @F(constants.%T.binding.as_type, constants.%Empty.facet.4f8) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.55f)] +// CHECK:STDOUT: %T.as_type.loc23_9.1: type = facet_access_type %T.ref.loc23_5 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc23_9.1: type = converted %T.ref.loc23_5, %T.as_type.loc23_9.1 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %T.as_type.loc23_9.2: type = facet_access_type constants.%T.ea3 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Empty.facet.loc23_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value %T.as_type.loc23_9.2, () [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %.loc23_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%T.ea3, %Empty.facet.loc23_9.1 [symbolic = %Empty.facet.loc23_9.2 (constants.%Empty.facet.826)] +// CHECK:STDOUT: %F.specific_fn.loc23_3.1: = specific_function %F.ref.loc23, @F(constants.%T.as_type, constants.%Empty.facet.826) [symbolic = %F.specific_fn.loc23_3.2 (constants.%F.specific_fn.900)] // CHECK:STDOUT: %F.call.loc23: init %empty_tuple.type = call %F.specific_fn.loc23_3.1() // CHECK:STDOUT: %F.ref.loc24: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref.loc24: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] // CHECK:STDOUT: %U.ref: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = name_ref U, %U.loc20_14.2 [symbolic = %U.loc20_14.1 (constants.%U.e1f642.2)] -// CHECK:STDOUT: %T.as_type.loc24: type = facet_access_type %T.ref.loc24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc24: type = converted %T.ref.loc24, %T.as_type.loc24 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %F.specific_fn.loc24_3.1: = specific_function %F.ref.loc24, @F(constants.%T.binding.as_type, constants.%U.e1f642.2) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.5c5)] +// CHECK:STDOUT: %T.as_type.loc24: type = facet_access_type %T.ref.loc24 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc24: type = converted %T.ref.loc24, %T.as_type.loc24 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %F.specific_fn.loc24_3.1: = specific_function %F.ref.loc24, @F(constants.%T.as_type, constants.%U.e1f642.2) [symbolic = %F.specific_fn.loc24_3.2 (constants.%F.specific_fn.1fe)] // CHECK:STDOUT: %F.call.loc24: init %empty_tuple.type = call %F.specific_fn.loc24_3.1() // CHECK:STDOUT: %F.ref.loc25: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %T.ref.loc25: %Z.type = name_ref T, %T.loc20_7.2 [symbolic = %T.loc20_7.1 (constants.%T.ea3)] // CHECK:STDOUT: %V.ref: type = name_ref V, %V.loc20_28.2 [symbolic = %V.loc20_28.1 (constants.%V)] -// CHECK:STDOUT: %T.as_type.loc25: type = facet_access_type %T.ref.loc25 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc25_9.1: type = converted %T.ref.loc25, %T.as_type.loc25 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc25: type = facet_access_type %T.ref.loc25 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc25_9.1: type = converted %T.ref.loc25, %T.as_type.loc25 [symbolic = %T.as_type.loc20_24.1 (constants.%T.as_type)] // CHECK:STDOUT: %Empty.facet.loc25_9.1: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = facet_value constants.%V, () [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] // CHECK:STDOUT: %.loc25_9.2: @G.%Empty.type.loc20_24.1 (%Empty.type.d682d6.2) = converted constants.%V, %Empty.facet.loc25_9.1 [symbolic = %Empty.facet.loc25_9.2 (constants.%Empty.facet.ed5)] -// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref.loc25, @F(constants.%T.binding.as_type, constants.%Empty.facet.ed5) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.bb1)] +// CHECK:STDOUT: %F.specific_fn.loc25_3.1: = specific_function %F.ref.loc25, @F(constants.%T.as_type, constants.%Empty.facet.ed5) [symbolic = %F.specific_fn.loc25_3.2 (constants.%F.specific_fn.0b3)] // CHECK:STDOUT: %F.call.loc25: init %empty_tuple.type = call %F.specific_fn.loc25_3.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -238,8 +238,8 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty(constants.%T.binding.as_type) { -// CHECK:STDOUT: %T.loc16_19.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @Empty(constants.%T.as_type) { +// CHECK:STDOUT: %T.loc16_19.1 => constants.%T.as_type // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Empty.type => constants.%Empty.type.d682d6.2 @@ -248,19 +248,19 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @G(constants.%T.ea3, constants.%U.e1f642.2, constants.%V) { // CHECK:STDOUT: %T.loc20_7.1 => constants.%T.ea3 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %T.as_type.loc20_24.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc20_24.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc20_14.1 => constants.%U.e1f642.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 // CHECK:STDOUT: %V.loc20_28.1 => constants.%V // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.binding.as_type, constants.%empty_struct.type.facet) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%empty_struct.type.facet) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.binding.as_type, constants.%Empty.facet.76f) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.76f) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.76f // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 @@ -268,12 +268,12 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.binding.as_type, constants.%facet_value.2cb) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%facet_value.2cb) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.binding.as_type, constants.%Empty.facet.2cb) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.2cb) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.2cb // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 @@ -281,25 +281,25 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.binding.as_type, constants.%T.ea3) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%T.ea3) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.binding.as_type, constants.%Empty.facet.4f8) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.826) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 -// CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.4f8 +// CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.826 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.binding.as_type, constants.%Self.31c17c.1) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%Self.31c17c.1) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.binding.as_type, constants.%U.e1f642.2) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%U.e1f642.2) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc18_24.1 => constants.%U.e1f642.2 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 @@ -307,12 +307,12 @@ fn G(T:! Z, U:! Empty(T), V:! type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.binding.as_type, constants.%facet_value.ed5) { +// CHECK:STDOUT: specific @Empty.WithSelf(constants.%T.as_type, constants.%facet_value.ed5) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @F(constants.%T.binding.as_type, constants.%Empty.facet.ed5) { -// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.binding.as_type +// CHECK:STDOUT: specific @F(constants.%T.as_type, constants.%Empty.facet.ed5) { +// CHECK:STDOUT: %T.loc18_7.1 => constants.%T.as_type // CHECK:STDOUT: %Empty.type.loc18_34.1 => constants.%Empty.type.d682d6.2 // CHECK:STDOUT: %U.loc18_24.1 => constants.%Empty.facet.ed5 // CHECK:STDOUT: %pattern_type => constants.%pattern_type.9a587c.2 diff --git a/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon b/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon index 0f69130a08a1..34f169b76b8d 100644 --- a/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon +++ b/toolchain/check/testdata/named_constraint/extend_name_lookup.carbon @@ -110,19 +110,19 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T: %W.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.binding.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.ZF.type.ac0: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] -// CHECK:STDOUT: %.ec9: type = fn_type_with_self_type %Z.WithSelf.ZF.type.ac0, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.e55: %.ec9 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.950: = specific_impl_function %impl.elem0.e55, @Z.WithSelf.ZF(%Z.facet) [symbolic] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.ZF.type.00a: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] +// CHECK:STDOUT: %.4e3: type = fn_type_with_self_type %Z.WithSelf.ZF.type.00a, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.f10: %.4e3 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b85: = specific_impl_function %impl.elem0.f10, @Z.WithSelf.ZF(%Z.facet) [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YF.type.288: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.c28: type = fn_type_with_self_type %Y.WithSelf.YF.type.288, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.984: %.c28 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.317: = specific_impl_function %impl.elem0.984, @Y.WithSelf.YF(%Y.facet) [symbolic] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YF.type.73e: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.ff4: type = fn_type_with_self_type %Y.WithSelf.YF.type.73e, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.1cb: %.ff4 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ee5: = specific_impl_function %impl.elem0.1cb, @Y.WithSelf.YF(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -141,37 +141,37 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.loc12_7.1: %W.type = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_4.2: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.binding.as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.ac0)] -// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet [symbolic = %.loc14_4.2 (constants.%.ec9)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.ec9) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.e55)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.950)] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type.loc14_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet (constants.%Z.facet)] +// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.00a)] +// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet [symbolic = %.loc14_4.2 (constants.%.4e3)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.4e3) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.f10)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.b85)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.288)] -// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.c28)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.c28) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.984)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.317)] +// CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.as_type.loc14_4.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] +// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.73e)] +// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.ff4)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.ff4) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.1cb)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.ee5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc14: %W.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc14_4.1: type = converted %T.ref.loc14, %T.as_type.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_4.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc14_4.1: type = converted %T.ref.loc14, %T.as_type.loc14_4.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.0cc] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.ec9) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.e55)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.950)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.4e3) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.f10)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.b85)] // CHECK:STDOUT: %Z.WithSelf.ZF.call: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: %T.ref.loc16: %W.type = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.2e5] -// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16_4.1: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16_4.1: %Y.type = converted %T.ref.loc16, %Y.facet.loc16_4.1 [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.c28) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.984)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.317)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.ff4) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.1cb)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.ee5)] // CHECK:STDOUT: %Y.WithSelf.YF.call: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } @@ -194,25 +194,25 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %W.type: type = facet_type <@W> [concrete] // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %type_where: type = facet_type [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %type_where [concrete] // CHECK:STDOUT: %T: %type_where = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T, @Z [symbolic] -// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.binding.as_type, (%Z.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Z.WithSelf.ZF.type.ac0: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] -// CHECK:STDOUT: %.ec9: type = fn_type_with_self_type %Z.WithSelf.ZF.type.ac0, %Z.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.e55: %.ec9 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.950: = specific_impl_function %impl.elem0.e55, @Z.WithSelf.ZF(%Z.facet) [symbolic] +// CHECK:STDOUT: %Z.facet: %Z.type = facet_value %T.as_type, (%Z.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Z.WithSelf.ZF.type.00a: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet) [symbolic] +// CHECK:STDOUT: %.4e3: type = fn_type_with_self_type %Z.WithSelf.ZF.type.00a, %Z.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.f10: %.4e3 = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.b85: = specific_impl_function %impl.elem0.f10, @Z.WithSelf.ZF(%Z.facet) [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YF.type.288: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.c28: type = fn_type_with_self_type %Y.WithSelf.YF.type.288, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0.984: %.c28 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn.317: = specific_impl_function %impl.elem0.984, @Y.WithSelf.YF(%Y.facet) [symbolic] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YF.type.73e: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.ff4: type = fn_type_with_self_type %Y.WithSelf.YF.type.73e, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0.1cb: %.ff4 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn.ee5: = specific_impl_function %impl.elem0.1cb, @Y.WithSelf.YF(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -225,8 +225,8 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %W.ref: type = name_ref W, file.%W.decl [concrete = constants.%W.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc12_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc12_21: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc12_15.2: type = where_expr %.Self.2 [concrete = constants.%type_where] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc12_21, %W.ref @@ -240,39 +240,39 @@ fn F(T:! type where .Self impls W) { // CHECK:STDOUT: %T.loc12_7.1: %type_where = symbolic_binding T, 0 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.loc12_7.1 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc14_4.2: type = facet_access_type %T.loc12_7.1 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Z.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Z [symbolic = %Z.lookup_impl_witness (constants.%Z.lookup_impl_witness)] -// CHECK:STDOUT: %Z.facet.loc14_4.2: %Z.type = facet_value %T.binding.as_type, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] -// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet.loc14_4.2) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.ac0)] -// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet.loc14_4.2 [symbolic = %.loc14_4.2 (constants.%.ec9)] -// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.ec9) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.e55)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet.loc14_4.2) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.950)] +// CHECK:STDOUT: %Z.facet.loc14_4.2: %Z.type = facet_value %T.as_type.loc14_4.2, (%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] +// CHECK:STDOUT: %Z.WithSelf.ZF.type: type = fn_type @Z.WithSelf.ZF, @Z.WithSelf(%Z.facet.loc14_4.2) [symbolic = %Z.WithSelf.ZF.type (constants.%Z.WithSelf.ZF.type.00a)] +// CHECK:STDOUT: %.loc14_4.2: type = fn_type_with_self_type %Z.WithSelf.ZF.type, %Z.facet.loc14_4.2 [symbolic = %.loc14_4.2 (constants.%.4e3)] +// CHECK:STDOUT: %impl.elem0.loc14_4.2: @F.%.loc14_4.2 (%.4e3) = impl_witness_access %Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.f10)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.2: = specific_impl_function %impl.elem0.loc14_4.2, @Z.WithSelf.ZF(%Z.facet.loc14_4.2) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.b85)] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc12_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.288)] -// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.c28)] -// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.c28) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.984)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.317)] +// CHECK:STDOUT: %Y.facet.loc16_4.2: %Y.type = facet_value %T.as_type.loc14_4.2, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] +// CHECK:STDOUT: %Y.WithSelf.YF.type: type = fn_type @Y.WithSelf.YF, @Y.WithSelf(%Y.facet.loc16_4.2) [symbolic = %Y.WithSelf.YF.type (constants.%Y.WithSelf.YF.type.73e)] +// CHECK:STDOUT: %.loc16_4.2: type = fn_type_with_self_type %Y.WithSelf.YF.type, %Y.facet.loc16_4.2 [symbolic = %.loc16_4.2 (constants.%.ff4)] +// CHECK:STDOUT: %impl.elem0.loc16_4.2: @F.%.loc16_4.2 (%.ff4) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.1cb)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.2: = specific_impl_function %impl.elem0.loc16_4.2, @Y.WithSelf.YF(%Y.facet.loc16_4.2) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.ee5)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc14: %type_where = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: %ZF.ref: %Z.assoc_type = name_ref ZF, @Z.WithSelf.%assoc0 [concrete = constants.%assoc0.0cc] -// CHECK:STDOUT: %T.as_type.loc14: type = facet_access_type %T.ref.loc14 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Z.facet.loc14_4.1: %Z.type = facet_value %T.as_type.loc14, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] +// CHECK:STDOUT: %T.as_type.loc14_4.1: type = facet_access_type %T.ref.loc14 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] +// CHECK:STDOUT: %Z.facet.loc14_4.1: %Z.type = facet_value %T.as_type.loc14_4.1, (constants.%Z.lookup_impl_witness) [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] // CHECK:STDOUT: %.loc14_4.1: %Z.type = converted %T.ref.loc14, %Z.facet.loc14_4.1 [symbolic = %Z.facet.loc14_4.2 (constants.%Z.facet)] -// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.ec9) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.e55)] -// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.950)] +// CHECK:STDOUT: %impl.elem0.loc14_4.1: @F.%.loc14_4.2 (%.4e3) = impl_witness_access constants.%Z.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_4.2 (constants.%impl.elem0.f10)] +// CHECK:STDOUT: %specific_impl_fn.loc14_4.1: = specific_impl_function %impl.elem0.loc14_4.1, @Z.WithSelf.ZF(constants.%Z.facet) [symbolic = %specific_impl_fn.loc14_4.2 (constants.%specific_impl_fn.b85)] // CHECK:STDOUT: %Z.WithSelf.ZF.call: init %empty_tuple.type = call %specific_impl_fn.loc14_4.1() // CHECK:STDOUT: %T.ref.loc16: %type_where = name_ref T, %T.loc12_7.2 [symbolic = %T.loc12_7.1 (constants.%T)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: %YF.ref: %Y.assoc_type = name_ref YF, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0.2e5] -// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc14_4.2 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16_4.1: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16_4.1: %Y.type = converted %T.ref.loc16, %Y.facet.loc16_4.1 [symbolic = %Y.facet.loc16_4.2 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.c28) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.984)] -// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.317)] +// CHECK:STDOUT: %impl.elem0.loc16_4.1: @F.%.loc16_4.2 (%.ff4) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc16_4.2 (constants.%impl.elem0.1cb)] +// CHECK:STDOUT: %specific_impl_fn.loc16_4.1: = specific_impl_function %impl.elem0.loc16_4.1, @Y.WithSelf.YF(constants.%Y.facet) [symbolic = %specific_impl_fn.loc16_4.2 (constants.%specific_impl_fn.ee5)] // CHECK:STDOUT: %Y.WithSelf.YF.call: init %empty_tuple.type = call %specific_impl_fn.loc16_4.1() // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon b/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon index 8d6ae76fe391..1b87a11c7394 100644 --- a/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon +++ b/toolchain/check/testdata/named_constraint/import_constraint_decl.carbon @@ -85,7 +85,7 @@ impl C as B {} // CHECK:STDOUT: %Self.f45: %B.type = symbolic_binding Self, 0 [symbolic] // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %Self.651: %I.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.f45 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.f45 [symbolic] // CHECK:STDOUT: %pattern_type: type = pattern_type %B.type [concrete] // CHECK:STDOUT: %T: %B.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -95,9 +95,9 @@ impl C as B {} // CHECK:STDOUT: imports { // CHECK:STDOUT: %Main.I = import_ref Main//b, I, unloaded // CHECK:STDOUT: %Main.B: type = import_ref Main//b, B, loaded [concrete = constants.%B.type] -// CHECK:STDOUT: %Main.import_ref.fa0 = import_ref Main//b, loc5_25, unloaded +// CHECK:STDOUT: %Main.import_ref.a5e = import_ref Main//b, loc5_25, unloaded // CHECK:STDOUT: %Main.import_ref.c82 = import_ref Main//b, loc3_13, unloaded -// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.WithSelf.Self.binding.as_type.impls.I.type.require.%Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Main.import_ref.67f: type = import_ref Main//b, loc5_18, loaded [symbolic = @B.WithSelf.Self.as_type.impls.I.type.require.%Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: %Main.import_ref.72a: type = import_ref Main//b, loc5_24, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.e33cd1.2: %B.type = import_ref Main//b, loc4_14, loaded [symbolic = constants.%Self.f45] // CHECK:STDOUT: %Main.import_ref.65b = import_ref Main//b, loc4_14, unloaded @@ -133,17 +133,17 @@ impl C as B {} // CHECK:STDOUT: constraint @B [from "b.carbon"] { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = imports.%Main.import_ref.65b -// CHECK:STDOUT: extend imports.%Main.import_ref.fa0 +// CHECK:STDOUT: extend imports.%Main.import_ref.a5e // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @B.WithSelf.Self.binding.as_type.impls.I.type.require { +// CHECK:STDOUT: @B.WithSelf.Self.as_type.impls.I.type.require { // CHECK:STDOUT: require imports.%Main.import_ref.67f impls imports.%Main.import_ref.72a // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @B.WithSelf.Self.binding.as_type.impls.I.type.require(imports.%Main.import_ref.e33cd1.2: %B.type) [from "b.carbon"] { +// CHECK:STDOUT: generic require @B.WithSelf.Self.as_type.impls.I.type.require(imports.%Main.import_ref.e33cd1.2: %B.type) [from "b.carbon"] { // CHECK:STDOUT: %Self: %B.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.f45)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc4_14.2: %B.type) { @@ -163,9 +163,9 @@ impl C as B {} // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @B.WithSelf.Self.binding.as_type.impls.I.type.require(constants.%Self.f45) { +// CHECK:STDOUT: specific @B.WithSelf.Self.as_type.impls.I.type.require(constants.%Self.f45) { // CHECK:STDOUT: %Self => constants.%Self.f45 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { diff --git a/toolchain/check/testdata/named_constraint/require.carbon b/toolchain/check/testdata/named_constraint/require.carbon index 0fea95a67d93..b957cddff6c3 100644 --- a/toolchain/check/testdata/named_constraint/require.carbon +++ b/toolchain/check/testdata/named_constraint/require.carbon @@ -708,15 +708,15 @@ fn G(T:! Z) { // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] -// CHECK:STDOUT: %pattern_type.349: type = pattern_type %T.binding.as_type [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] +// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T, @Y [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YY.type.7ea: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet) [symbolic] -// CHECK:STDOUT: %.1b4: type = fn_type_with_self_type %Y.WithSelf.YY.type.7ea, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.1b4 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %Y.facet: %Y.type = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YY.type.df2: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet) [symbolic] +// CHECK:STDOUT: %.a84: type = fn_type_with_self_type %Y.WithSelf.YY.type.df2, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.a84 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] // CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Y.WithSelf.YY(%Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -729,13 +729,13 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Y.ref +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) [concrete = constants.%Y.type] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -745,14 +745,14 @@ fn G(T:! Z) { // CHECK:STDOUT: extend @Z.WithSelf.%.loc9 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_18.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type) { @@ -761,33 +761,33 @@ fn G(T:! Z) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Y [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc15: %Y.type = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.7ea)] -// CHECK:STDOUT: %.loc15_4.2: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.2 (constants.%.1b4)] -// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.2 (%.1b4) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %Y.facet.loc15: %Y.type = facet_value %T.as_type.loc13_16.1, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.df2)] +// CHECK:STDOUT: %.loc15_4.2: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.2 (constants.%.a84)] +// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.2 (%.a84) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.2: = specific_impl_function %impl.elem0.loc15_4.2, @Y.WithSelf.YY(%Y.facet.loc15) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_16.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc15: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T)] -// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %YY.ref.loc15: %Y.assoc_type = name_ref YY, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.2 (%.1b4) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.2 (%.a84) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc15_4.1: = specific_impl_function %impl.elem0.loc15_4.1, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc15: init %empty_tuple.type = call %specific_impl_fn.loc15_4.1() // CHECK:STDOUT: %T.ref.loc16: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: %YY.ref.loc16: %Y.assoc_type = name_ref YY, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] +// CHECK:STDOUT: %T.as_type.loc16: type = facet_access_type %T.ref.loc16 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] // CHECK:STDOUT: %Y.facet.loc16: %Y.type = facet_value %T.as_type.loc16, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] // CHECK:STDOUT: %.loc16: %Y.type = converted %T.ref.loc16, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.2 (%.1b4) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.2 (%.a84) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc16: = specific_impl_function %impl.elem0.loc16, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc16: init %empty_tuple.type = call %specific_impl_fn.loc16() -// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_16.1 (%T.as_type) = name_ref t, %t // CHECK:STDOUT: %YY.ref.loc18: %Y.assoc_type = name_ref YY, @Y.WithSelf.%assoc0 [concrete = constants.%assoc0] -// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.2 (%.1b4) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.2 (%.a84) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] // CHECK:STDOUT: %specific_impl_fn.loc18: = specific_impl_function %impl.elem0.loc18, @Y.WithSelf.YY(constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc18: init %empty_tuple.type = call %specific_impl_fn.loc18() // CHECK:STDOUT: @@ -798,24 +798,24 @@ fn G(T:! Z) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%T -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.349 +// CHECK:STDOUT: %T.as_type.loc13_16.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%T) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- extend_with_self.carbon @@ -829,22 +829,22 @@ fn G(T:! Z) { // CHECK:STDOUT: %Self.6f4: %Y.type.a16 = symbolic_binding Self, 1 [symbolic] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] -// CHECK:STDOUT: %Y.type.83d: type = facet_type <@Y, @Y(%Self.binding.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.057: = require_complete_type %Y.type.83d [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] +// CHECK:STDOUT: %Y.type.bf0: type = facet_type <@Y, @Y(%Self.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.aa4: = require_complete_type %Y.type.bf0 [symbolic] // CHECK:STDOUT: %T.f45: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.f45 [symbolic] -// CHECK:STDOUT: %pattern_type.349: type = pattern_type %T.binding.as_type [symbolic] -// CHECK:STDOUT: %Y.type.55c: type = facet_type <@Y, @Y(%T.binding.as_type)> [symbolic] -// CHECK:STDOUT: %require_complete.ec2: = require_complete_type %Y.type.55c [symbolic] -// CHECK:STDOUT: %Y.assoc_type.eee: type = assoc_entity_type @Y, @Y(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %assoc0.e42: %Y.assoc_type.eee = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.f45, @Y, @Y(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %Y.facet: %Y.type.55c = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic] -// CHECK:STDOUT: %Y.WithSelf.YY.type.aeb: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.binding.as_type, %Y.facet) [symbolic] -// CHECK:STDOUT: %.b61: type = fn_type_with_self_type %Y.WithSelf.YY.type.aeb, %Y.facet [symbolic] -// CHECK:STDOUT: %impl.elem0: %.b61 = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] -// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Y.WithSelf.YY(%T.binding.as_type, %Y.facet) [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.f45 [symbolic] +// CHECK:STDOUT: %pattern_type.86a: type = pattern_type %T.as_type [symbolic] +// CHECK:STDOUT: %Y.type.229: type = facet_type <@Y, @Y(%T.as_type)> [symbolic] +// CHECK:STDOUT: %require_complete.db1: = require_complete_type %Y.type.229 [symbolic] +// CHECK:STDOUT: %Y.assoc_type.44d: type = assoc_entity_type @Y, @Y(%T.as_type) [symbolic] +// CHECK:STDOUT: %assoc0.e5b: %Y.assoc_type.44d = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.f45, @Y, @Y(%T.as_type) [symbolic] +// CHECK:STDOUT: %Y.facet: %Y.type.229 = facet_value %T.as_type, (%Y.lookup_impl_witness) [symbolic] +// CHECK:STDOUT: %Y.WithSelf.YY.type.4a6: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type, %Y.facet) [symbolic] +// CHECK:STDOUT: %.52c: type = fn_type_with_self_type %Y.WithSelf.YY.type.4a6, %Y.facet [symbolic] +// CHECK:STDOUT: %impl.elem0: %.52c = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic] +// CHECK:STDOUT: %specific_impl_fn: = specific_impl_function %impl.elem0, @Y.WithSelf.YY(%T.as_type, %Y.facet) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -856,17 +856,17 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type.loc9_18 impls %Y.type.loc9_30.1 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_18.1 impls %Y.type.loc9_30.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc9_18: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_18.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: %Y.type.82b = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.binding.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.83d)] +// CHECK:STDOUT: %Self.as_type.loc9_30: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_30 [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y.type.loc9_30.1: type = facet_type <@Y, @Y(constants.%Self.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.bf0)] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) [symbolic = %Y.type (constants.%Y.type.83d)] +// CHECK:STDOUT: %.loc9: type = specific_constant @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1, @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) [symbolic = %Y.type (constants.%Y.type.bf0)] // CHECK:STDOUT: // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = %Self @@ -876,15 +876,15 @@ fn G(T:! Z) { // CHECK:STDOUT: extend @Z.WithSelf.%.loc9 // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type.loc9_18 impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.type.loc9_30.1 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_18.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.type.loc9_30.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.binding.as_type)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.83d)] +// CHECK:STDOUT: %Self.as_type.loc9_18.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_18.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y.type.loc9_30.2: type = facet_type <@Y, @Y(%Self.as_type.loc9_18.2)> [symbolic = %Y.type.loc9_30.2 (constants.%Y.type.bf0)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: generic fn @F(%T.loc13_7.2: %Z.type) { @@ -892,46 +892,46 @@ fn G(T:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: -// CHECK:STDOUT: %Y.type.loc15: type = facet_type <@Y, @Y(%T.binding.as_type)> [symbolic = %Y.type.loc15 (constants.%Y.type.55c)] -// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Y.type.loc15 [symbolic = %require_complete.loc15 (constants.%require_complete.ec2)] -// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%T.binding.as_type) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.eee)] -// CHECK:STDOUT: %assoc0: @F.%Y.assoc_type (%Y.assoc_type.eee) = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Y, @Y(%T.binding.as_type) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] -// CHECK:STDOUT: %Y.facet.loc15: @F.%Y.type.loc15 (%Y.type.55c) = facet_value %T.binding.as_type, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.binding.as_type, %Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.aeb)] -// CHECK:STDOUT: %.loc15_4.3: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.3 (constants.%.b61)] -// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.3 (%.b61) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc15_4.2: = specific_impl_function %impl.elem0.loc15_4.2, @Y.WithSelf.YY(%T.binding.as_type, %Y.facet.loc15) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %Y.type.loc15: type = facet_type <@Y, @Y(%T.as_type.loc13_16.1)> [symbolic = %Y.type.loc15 (constants.%Y.type.229)] +// CHECK:STDOUT: %require_complete.loc15: = require_complete_type %Y.type.loc15 [symbolic = %require_complete.loc15 (constants.%require_complete.db1)] +// CHECK:STDOUT: %Y.assoc_type: type = assoc_entity_type @Y, @Y(%T.as_type.loc13_16.1) [symbolic = %Y.assoc_type (constants.%Y.assoc_type.44d)] +// CHECK:STDOUT: %assoc0: @F.%Y.assoc_type (%Y.assoc_type.44d) = assoc_entity element0, @Y.WithSelf.%Y.WithSelf.YY.decl [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %T.loc13_7.1, @Y, @Y(%T.as_type.loc13_16.1) [symbolic = %Y.lookup_impl_witness (constants.%Y.lookup_impl_witness)] +// CHECK:STDOUT: %Y.facet.loc15: @F.%Y.type.loc15 (%Y.type.229) = facet_value %T.as_type.loc13_16.1, (%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %Y.WithSelf.YY.type: type = fn_type @Y.WithSelf.YY, @Y.WithSelf(%T.as_type.loc13_16.1, %Y.facet.loc15) [symbolic = %Y.WithSelf.YY.type (constants.%Y.WithSelf.YY.type.4a6)] +// CHECK:STDOUT: %.loc15_4.3: type = fn_type_with_self_type %Y.WithSelf.YY.type, %Y.facet.loc15 [symbolic = %.loc15_4.3 (constants.%.52c)] +// CHECK:STDOUT: %impl.elem0.loc15_4.2: @F.%.loc15_4.3 (%.52c) = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc15_4.2: = specific_impl_function %impl.elem0.loc15_4.2, @Y.WithSelf.YY(%T.as_type.loc13_16.1, %Y.facet.loc15) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%t.param: @F.%T.binding.as_type (%T.binding.as_type)) { +// CHECK:STDOUT: fn(%t.param: @F.%T.as_type.loc13_16.1 (%T.as_type)) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %T.ref.loc15: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] -// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc15_4.2: @F.%Y.assoc_type (%Y.assoc_type.eee) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.binding.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %YY.ref.loc15: @F.%Y.assoc_type (%Y.assoc_type.eee) = name_ref YY, %.loc15_4.2 [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.3 (%.b61) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc15_4.1: = specific_impl_function %impl.elem0.loc15_4.1, @Y.WithSelf.YY(constants.%T.binding.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %T.as_type.loc15: type = facet_access_type %T.ref.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_4.1: type = converted %T.ref.loc15, %T.as_type.loc15 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc15_4.2: @F.%Y.assoc_type (%Y.assoc_type.44d) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %YY.ref.loc15: @F.%Y.assoc_type (%Y.assoc_type.44d) = name_ref YY, %.loc15_4.2 [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %impl.elem0.loc15_4.1: @F.%.loc15_4.3 (%.52c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc15_4.1: = specific_impl_function %impl.elem0.loc15_4.1, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc15: init %empty_tuple.type = call %specific_impl_fn.loc15_4.1() // CHECK:STDOUT: %T.ref.loc16_3: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] // CHECK:STDOUT: %Y.ref: %Y.type.82b = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %T.ref.loc16_8: %Z.type = name_ref T, %T.loc13_7.2 [symbolic = %T.loc13_7.1 (constants.%T.f45)] -// CHECK:STDOUT: %T.as_type.loc16_9: type = facet_access_type %T.ref.loc16_8 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %.loc16_9: type = converted %T.ref.loc16_8, %T.as_type.loc16_9 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Y.type.loc16: type = facet_type <@Y, @Y(constants.%T.binding.as_type)> [symbolic = %Y.type.loc15 (constants.%Y.type.55c)] -// CHECK:STDOUT: %.loc16_10: @F.%Y.assoc_type (%Y.assoc_type.eee) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.binding.as_type, constants.%Self.6f4) [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %YY.ref.loc16: @F.%Y.assoc_type (%Y.assoc_type.eee) = name_ref YY, %.loc16_10 [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %T.as_type.loc16_4: type = facet_access_type %T.ref.loc16_3 [symbolic = %T.binding.as_type (constants.%T.binding.as_type)] -// CHECK:STDOUT: %Y.facet.loc16: @F.%Y.type.loc15 (%Y.type.55c) = facet_value %T.as_type.loc16_4, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %.loc16_4: @F.%Y.type.loc15 (%Y.type.55c) = converted %T.ref.loc16_3, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] -// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.3 (%.b61) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc16: = specific_impl_function %impl.elem0.loc16, @Y.WithSelf.YY(constants.%T.binding.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %T.as_type.loc16_9: type = facet_access_type %T.ref.loc16_8 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %.loc16_9: type = converted %T.ref.loc16_8, %T.as_type.loc16_9 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Y.type.loc16: type = facet_type <@Y, @Y(constants.%T.as_type)> [symbolic = %Y.type.loc15 (constants.%Y.type.229)] +// CHECK:STDOUT: %.loc16_10: @F.%Y.assoc_type (%Y.assoc_type.44d) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%Self.6f4) [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %YY.ref.loc16: @F.%Y.assoc_type (%Y.assoc_type.44d) = name_ref YY, %.loc16_10 [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %T.as_type.loc16_4: type = facet_access_type %T.ref.loc16_3 [symbolic = %T.as_type.loc13_16.1 (constants.%T.as_type)] +// CHECK:STDOUT: %Y.facet.loc16: @F.%Y.type.loc15 (%Y.type.229) = facet_value %T.as_type.loc16_4, (constants.%Y.lookup_impl_witness) [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %.loc16_4: @F.%Y.type.loc15 (%Y.type.229) = converted %T.ref.loc16_3, %Y.facet.loc16 [symbolic = %Y.facet.loc15 (constants.%Y.facet)] +// CHECK:STDOUT: %impl.elem0.loc16: @F.%.loc15_4.3 (%.52c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc16: = specific_impl_function %impl.elem0.loc16, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc16: init %empty_tuple.type = call %specific_impl_fn.loc16() -// CHECK:STDOUT: %t.ref: @F.%T.binding.as_type (%T.binding.as_type) = name_ref t, %t -// CHECK:STDOUT: %.loc18: @F.%Y.assoc_type (%Y.assoc_type.eee) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.binding.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %YY.ref.loc18: @F.%Y.assoc_type (%Y.assoc_type.eee) = name_ref YY, %.loc18 [symbolic = %assoc0 (constants.%assoc0.e42)] -// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.3 (%.b61) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc18: = specific_impl_function %impl.elem0.loc18, @Y.WithSelf.YY(constants.%T.binding.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %t.ref: @F.%T.as_type.loc13_16.1 (%T.as_type) = name_ref t, %t +// CHECK:STDOUT: %.loc18: @F.%Y.assoc_type (%Y.assoc_type.44d) = specific_constant @Y.WithSelf.%assoc0.loc4_10.1, @Y.WithSelf(constants.%T.as_type, constants.%T.f45) [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %YY.ref.loc18: @F.%Y.assoc_type (%Y.assoc_type.44d) = name_ref YY, %.loc18 [symbolic = %assoc0 (constants.%assoc0.e5b)] +// CHECK:STDOUT: %impl.elem0.loc18: @F.%.loc15_4.3 (%.52c) = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc15_4.2 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc18: = specific_impl_function %impl.elem0.loc18, @Y.WithSelf.YY(constants.%T.as_type, constants.%Y.facet) [symbolic = %specific_impl_fn.loc15_4.2 (constants.%specific_impl_fn)] // CHECK:STDOUT: %Y.WithSelf.YY.call.loc18: init %empty_tuple.type = call %specific_impl_fn.loc18() // CHECK:STDOUT: // CHECK:STDOUT: } @@ -940,35 +940,35 @@ fn G(T:! Z) { // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.83d -// CHECK:STDOUT: %require_complete => constants.%require_complete.057 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %Y.type => constants.%Y.type.bf0 +// CHECK:STDOUT: %require_complete => constants.%require_complete.aa4 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.83d +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%Self.as_type +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.bf0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @F(constants.%T.f45) { // CHECK:STDOUT: %T.loc13_7.1 => constants.%T.f45 -// CHECK:STDOUT: %T.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %pattern_type => constants.%pattern_type.349 +// CHECK:STDOUT: %T.as_type.loc13_16.1 => constants.%T.as_type +// CHECK:STDOUT: %pattern_type => constants.%pattern_type.86a // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T.f45) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %Self => constants.%T.f45 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Y.type => constants.%Y.type.55c -// CHECK:STDOUT: %require_complete => constants.%require_complete.ec2 +// CHECK:STDOUT: %Self.as_type => constants.%T.as_type +// CHECK:STDOUT: %Y.type => constants.%Y.type.229 +// CHECK:STDOUT: %require_complete => constants.%require_complete.db1 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%T.f45) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%T.f45) { // CHECK:STDOUT: %Self => constants.%T.f45 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.55c +// CHECK:STDOUT: %Self.as_type.loc9_18.2 => constants.%T.as_type +// CHECK:STDOUT: %Y.type.loc9_30.2 => constants.%Y.type.229 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- implicit_self_impls.carbon @@ -977,9 +977,9 @@ fn G(T:! Z) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -991,10 +991,10 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Y.ref +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc9_11.1 impls %Y.ref // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1004,32 +1004,32 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%Self.as_type.loc9_11.1 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%T) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- explicit_self_impls.carbon @@ -1038,9 +1038,9 @@ fn G(T:! Z) { // CHECK:STDOUT: %Y.type: type = facet_type <@Y> [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %T: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1052,12 +1052,12 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y.type.require [concrete] { +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y.type.require [concrete] { // CHECK:STDOUT: require %.loc9 impls %Y.ref // CHECK:STDOUT: } { // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_11.1 [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1067,32 +1067,32 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%.loc9 impls @Z.WithSelf.Self.binding.as_type.impls.Y.type.require.%Y.ref +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y.type.require.%.loc9 impls @Z.WithSelf.Self.as_type.impls.Y.type.require.%Y.ref // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%T) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y.type.require(constants.%T) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y.type.require(constants.%T) { // CHECK:STDOUT: %Self => constants.%T -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc9_11.2 => constants.%T.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- explicit_self_specific_impls.carbon @@ -1103,8 +1103,8 @@ fn G(T:! Z) { // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] -// CHECK:STDOUT: %C.237: type = class_type @C, @C(%Self.binding.as_type) [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] +// CHECK:STDOUT: %C.6c0: type = class_type @C, @C(%Self.as_type) [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1121,9 +1121,9 @@ fn G(T:! Z) { // CHECK:STDOUT: } { // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.237)] +// CHECK:STDOUT: %Self.as_type.loc9_17.1: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9: type = converted %Self.ref, %Self.as_type.loc9_17.1 [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %C.loc9_17.1: type = class_type @C, @C(constants.%Self.as_type) [symbolic = %C.loc9_17.2 (constants.%C.6c0)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1142,16 +1142,16 @@ fn G(T:! Z) { // CHECK:STDOUT: // CHECK:STDOUT: generic require @Z.WithSelf.C.impls.Y.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.binding.as_type) [symbolic = %C.loc9_17.2 (constants.%C.237)] +// CHECK:STDOUT: %Self.as_type.loc9_17.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_17.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %C.loc9_17.2: type = class_type @C, @C(%Self.as_type.loc9_17.2) [symbolic = %C.loc9_17.2 (constants.%C.6c0)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) {} // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf.C.impls.Y.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.237 +// CHECK:STDOUT: %Self.as_type.loc9_17.2 => constants.%Self.as_type +// CHECK:STDOUT: %C.loc9_17.2 => constants.%C.6c0 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_impls_where.carbon @@ -1162,10 +1162,10 @@ fn G(T:! Z) { // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -1181,15 +1181,15 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %.loc7_19 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc7_11.1 impls %.loc7_19 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %Y.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc7_32.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -1206,21 +1206,21 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type impls @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%.loc7_19 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y_where.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%Self.as_type.loc7_11.1 impls @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%.loc7_19 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc7_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc7_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc7_11.2 => constants.%Self.as_type // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_require_impls_incomplete_constraint.carbon @@ -1307,12 +1307,12 @@ fn G(T:! Z) { // CHECK:STDOUT: %assoc0: %Y.assoc_type = assoc_entity element0, @Y.WithSelf.%Y1 [concrete] // CHECK:STDOUT: %Z.type: type = facet_type <@Z> [concrete] // CHECK:STDOUT: %Self.550: %Z.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %.Self: %Y.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %Y.lookup_impl_witness: = lookup_impl_witness %.Self, @Y [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %Y.lookup_impl_witness, element0 [symbolic_self] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where %impl.elem0 = %Self.binding.as_type> [symbolic] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where %impl.elem0 = %Self.as_type> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1324,20 +1324,20 @@ fn G(T:! Z) { // CHECK:STDOUT: %Z.WithSelf.decl = constraint_with_self_decl @Z [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type.loc10_11 impls %.loc10_19 +// CHECK:STDOUT: %Z.WithSelf.Self.as_type.impls.Y_where.type.require.decl = require_decl @Z.WithSelf.Self.as_type.impls.Y_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc10_11.1 impls %.loc10_19 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type.loc10_11: type = facet_access_type @Z.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @Z.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Y.ref: type = name_ref Y, file.%Y.decl [concrete = constants.%Y.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %Y.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Y1.ref: %Y.assoc_type = name_ref Y1, @Y1.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%Y.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %Self.ref: %Z.type = name_ref Self, @Z.%Self [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_31: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc10_31: type = converted %Self.ref, %Self.as_type.loc10_31 [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %.loc10_19: type = where_expr %.Self [symbolic = %Y_where.type (constants.%Y_where.type)] { // CHECK:STDOUT: requirement_base_facet_type constants.%Y.type // CHECK:STDOUT: requirement_rewrite %impl.elem0, %.loc10_31 @@ -1350,22 +1350,22 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require { -// CHECK:STDOUT: require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11 impls @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require.%.loc10_19 +// CHECK:STDOUT: @Z.WithSelf.Self.as_type.impls.Y_where.type.require { +// CHECK:STDOUT: require @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%Self.as_type.loc10_11.1 impls @Z.WithSelf.Self.as_type.impls.Y_where.type.require.%.loc10_19 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { +// CHECK:STDOUT: generic require @Z.WithSelf.Self.as_type.impls.Y_where.type.require(@Z.%Self: %Z.type) { // CHECK:STDOUT: %Self: %Z.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.binding.as_type> [symbolic = %Y_where.type (constants.%Y_where.type)] +// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %Y_where.type: type = facet_type <@Y where constants.%impl.elem0 = %Self.as_type.loc10_11.2> [symbolic = %Y_where.type (constants.%Y_where.type)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Z.WithSelf(constants.%Self.550) {} // CHECK:STDOUT: -// CHECK:STDOUT: specific @Z.WithSelf.Self.binding.as_type.impls.Y_where.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @Z.WithSelf.Self.as_type.impls.Y_where.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type // CHECK:STDOUT: %Y_where.type => constants.%Y_where.type // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1379,17 +1379,17 @@ fn G(T:! Z) { // CHECK:STDOUT: %Y.generic: %Y.type.82b = struct_value () [concrete] // CHECK:STDOUT: %N.type: type = facet_type <@N> [concrete] // CHECK:STDOUT: %Self.550: %N.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.5cb: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type.92a: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %.Self.aac: %Z.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type.5a0: type = symbolic_binding_type .Self, %.Self.aac [symbolic_self] -// CHECK:STDOUT: %Y.type.dfc: type = facet_type <@Y, @Y(%.Self.binding.as_type.5a0)> [symbolic_self] -// CHECK:STDOUT: %Z_where.type.455: type = facet_type <@Z where .Self impls @Y, @Y(%.Self.binding.as_type.5a0)> [symbolic_self] -// CHECK:STDOUT: %Z_where.type.820: type = facet_type <@Z where .Self impls @Y, @Y(%Self.binding.as_type.5cb)> [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.8db: type = symbolic_binding_type .Self, %.Self.c39 [symbolic_self] -// CHECK:STDOUT: %facet_type: type = facet_type <@Z & @Y, @Y(%.Self.binding.as_type.8db)> [symbolic_self] -// CHECK:STDOUT: %T.e40: %facet_type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.e40 [symbolic] -// CHECK:STDOUT: %Z_where.type.c36: type = facet_type <@Z where .Self impls @Y, @Y(%T.binding.as_type)> [symbolic] +// CHECK:STDOUT: %.Self.as_type.2e2: type = facet_access_type %.Self.aac [symbolic_self] +// CHECK:STDOUT: %Y.type.9b9: type = facet_type <@Y, @Y(%.Self.as_type.2e2)> [symbolic_self] +// CHECK:STDOUT: %Z_where.type.3f0: type = facet_type <@Z where .Self impls @Y, @Y(%.Self.as_type.2e2)> [symbolic_self] +// CHECK:STDOUT: %Z_where.type.862: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.92a)> [symbolic] +// CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] +// CHECK:STDOUT: %facet_type: type = facet_type <@Z & @Y, @Y(%.Self.as_type.246)> [symbolic_self] +// CHECK:STDOUT: %T.11b: %facet_type = symbolic_binding T, 0 [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.11b [symbolic] +// CHECK:STDOUT: %Z_where.type.7fe: type = facet_type <@Z where .Self impls @Y, @Y(%T.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1401,25 +1401,25 @@ fn G(T:! Z) { // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.decl = require_decl @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Z_where.type.loc10_19.1 +// CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.Z_where.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.Z_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc10_11.1 impls %Z_where.type.loc10_19.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)] +// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @N.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.92a)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_25: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.aac] // CHECK:STDOUT: %Y.ref: %Y.type.82b = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %.Self.ref.loc10_39: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.aac] -// CHECK:STDOUT: %.Self.as_type.loc10_44: type = facet_access_type %.Self.ref.loc10_39 [symbolic_self = constants.%.Self.binding.as_type.5a0] -// CHECK:STDOUT: %.loc10_44: type = converted %.Self.ref.loc10_39, %.Self.as_type.loc10_44 [symbolic_self = constants.%.Self.binding.as_type.5a0] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.binding.as_type.5a0)> [symbolic_self = constants.%Y.type.dfc] -// CHECK:STDOUT: %.Self.as_type.loc10_25: type = facet_access_type %.Self.ref.loc10_25 [symbolic_self = constants.%.Self.binding.as_type.5a0] -// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref.loc10_25, %.Self.as_type.loc10_25 [symbolic_self = constants.%.Self.binding.as_type.5a0] -// CHECK:STDOUT: %.loc10_19: type = where_expr %.Self [symbolic_self = constants.%Z_where.type.455] { +// CHECK:STDOUT: %.Self.as_type.loc10_44: type = facet_access_type %.Self.ref.loc10_39 [symbolic_self = constants.%.Self.as_type.2e2] +// CHECK:STDOUT: %.loc10_44: type = converted %.Self.ref.loc10_39, %.Self.as_type.loc10_44 [symbolic_self = constants.%.Self.as_type.2e2] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type.2e2)> [symbolic_self = constants.%Y.type.9b9] +// CHECK:STDOUT: %.Self.as_type.loc10_25: type = facet_access_type %.Self.ref.loc10_25 [symbolic_self = constants.%.Self.as_type.2e2] +// CHECK:STDOUT: %.loc10_25: type = converted %.Self.ref.loc10_25, %.Self.as_type.loc10_25 [symbolic_self = constants.%.Self.as_type.2e2] +// CHECK:STDOUT: %.loc10_19: type = where_expr %.Self [symbolic_self = constants.%Z_where.type.3f0] { // CHECK:STDOUT: requirement_base_facet_type constants.%Z.type // CHECK:STDOUT: requirement_impls %.loc10_25, %Y.type // CHECK:STDOUT: } -// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where .Self impls @Y, @Y(constants.%Self.binding.as_type.5cb)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.820)] +// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where .Self impls @Y, @Y(constants.%Self.as_type.92a)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.862)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1430,35 +1430,35 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require { -// CHECK:STDOUT: require @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.%Self.as_type impls @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.%Z_where.type.loc10_19.1 +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.Z_where.type.require { +// CHECK:STDOUT: require @N.WithSelf.Self.as_type.impls.Z_where.type.require.%Self.as_type.loc10_11.1 impls @N.WithSelf.Self.as_type.impls.Z_where.type.require.%Z_where.type.loc10_19.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { // CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.5cb)] -// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where .Self impls @Y, @Y(%Self.binding.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.820)] +// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type.92a)] +// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where .Self impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.862)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%Self.550) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.5cb -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.820 +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type.92a +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.862 // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf(constants.%T.e40) { +// CHECK:STDOUT: specific @N.WithSelf(constants.%T.11b) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(constants.%T.e40) { -// CHECK:STDOUT: %Self => constants.%T.e40 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.c36 +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.11b) { +// CHECK:STDOUT: %Self => constants.%T.11b +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%T.as_type +// CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.7fe // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- require_with_specific_period_self.carbon @@ -1471,18 +1471,18 @@ fn G(T:! Z) { // CHECK:STDOUT: %C.generic: %C.type = struct_value () [concrete] // CHECK:STDOUT: %N.type: type = facet_type <@N> [concrete] // CHECK:STDOUT: %Self.550: %N.type = symbolic_binding Self, 0 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self.550 [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.550 [symbolic] // CHECK:STDOUT: %.Self.aac: %Z.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.aac [symbolic_self] -// CHECK:STDOUT: %C.646: type = class_type @C, @C(%.Self.binding.as_type) [symbolic_self] -// CHECK:STDOUT: %Y.type.dfc: type = facet_type <@Y, @Y(%.Self.binding.as_type)> [symbolic_self] -// CHECK:STDOUT: %Z_where.type.a6d533.1: type = facet_type <@Z where %C.646 impls @Y, @Y(%.Self.binding.as_type)> [symbolic_self] -// CHECK:STDOUT: %C.237: type = class_type @C, @C(%Self.binding.as_type) [symbolic] -// CHECK:STDOUT: %Z_where.type.a6d533.2: type = facet_type <@Z where %C.237 impls @Y, @Y(%Self.binding.as_type)> [symbolic] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.aac [symbolic_self] +// CHECK:STDOUT: %C.f27: type = class_type @C, @C(%.Self.as_type) [symbolic_self] +// CHECK:STDOUT: %Y.type.9b9: type = facet_type <@Y, @Y(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %Z_where.type.a6d533.1: type = facet_type <@Z where %C.f27 impls @Y, @Y(%.Self.as_type)> [symbolic_self] +// CHECK:STDOUT: %C.6c0: type = class_type @C, @C(%Self.as_type) [symbolic] +// CHECK:STDOUT: %Z_where.type.a6d533.2: type = facet_type <@Z where %C.6c0 impls @Y, @Y(%Self.as_type)> [symbolic] // CHECK:STDOUT: %T.ea3: %Z.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %T.binding.as_type: type = symbolic_binding_type T, 0, %T.ea3 [symbolic] -// CHECK:STDOUT: %C.3e1: type = class_type @C, @C(%T.binding.as_type) [symbolic] -// CHECK:STDOUT: %Z_where.type.a6d533.3: type = facet_type <@Z where %C.3e1 impls @Y, @Y(%T.binding.as_type)> [symbolic] +// CHECK:STDOUT: %T.as_type: type = facet_access_type %T.ea3 [symbolic] +// CHECK:STDOUT: %C.dd2: type = class_type @C, @C(%T.as_type) [symbolic] +// CHECK:STDOUT: %Z_where.type.a6d533.3: type = facet_type <@Z where %C.dd2 impls @Y, @Y(%T.as_type)> [symbolic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -1494,27 +1494,27 @@ fn G(T:! Z) { // CHECK:STDOUT: %N.WithSelf.decl = constraint_with_self_decl @N [concrete] // CHECK:STDOUT: // CHECK:STDOUT: !with Self: -// CHECK:STDOUT: %N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.decl = require_decl @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require [concrete] { -// CHECK:STDOUT: require %Self.as_type impls %Z_where.type.loc10_19.1 +// CHECK:STDOUT: %N.WithSelf.Self.as_type.impls.Z_where.type.require.decl = require_decl @N.WithSelf.Self.as_type.impls.Z_where.type.require [concrete] { +// CHECK:STDOUT: require %Self.as_type.loc10_11.1 impls %Z_where.type.loc10_19.1 // CHECK:STDOUT: } { -// CHECK:STDOUT: %Self.as_type: type = facet_access_type @N.%Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc10_11.1: type = facet_access_type @N.%Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] // CHECK:STDOUT: %Z.ref: type = name_ref Z, file.%Z.decl [concrete = constants.%Z.type] // CHECK:STDOUT: // CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [concrete = constants.%C.generic] // CHECK:STDOUT: %.Self.ref.loc10_27: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.aac] -// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_27 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_27, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %C.loc10_32: type = class_type @C, @C(constants.%.Self.binding.as_type) [symbolic_self = constants.%C.646] +// CHECK:STDOUT: %.Self.as_type.loc10_32: type = facet_access_type %.Self.ref.loc10_27 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_32: type = converted %.Self.ref.loc10_27, %.Self.as_type.loc10_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %C.loc10_32: type = class_type @C, @C(constants.%.Self.as_type) [symbolic_self = constants.%C.f27] // CHECK:STDOUT: %Y.ref: %Y.type.82b = name_ref Y, file.%Y.decl [concrete = constants.%Y.generic] // CHECK:STDOUT: %.Self.ref.loc10_42: %Z.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self.aac] -// CHECK:STDOUT: %.Self.as_type.loc10_47: type = facet_access_type %.Self.ref.loc10_42 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_47: type = converted %.Self.ref.loc10_42, %.Self.as_type.loc10_47 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.binding.as_type)> [symbolic_self = constants.%Y.type.dfc] +// CHECK:STDOUT: %.Self.as_type.loc10_47: type = facet_access_type %.Self.ref.loc10_42 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_47: type = converted %.Self.ref.loc10_42, %.Self.as_type.loc10_47 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %Y.type: type = facet_type <@Y, @Y(constants.%.Self.as_type)> [symbolic_self = constants.%Y.type.9b9] // CHECK:STDOUT: %.loc10_19: type = where_expr %.Self [symbolic_self = constants.%Z_where.type.a6d533.1] { // CHECK:STDOUT: requirement_base_facet_type constants.%Z.type // CHECK:STDOUT: requirement_impls %C.loc10_32, %Y.type // CHECK:STDOUT: } -// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where constants.%C.237 impls @Y, @Y(constants.%Self.binding.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a6d533.2)] +// CHECK:STDOUT: %Z_where.type.loc10_19.1: type = facet_type <@Z where constants.%C.6c0 impls @Y, @Y(constants.%Self.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a6d533.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !members: @@ -1527,26 +1527,26 @@ fn G(T:! Z) { // CHECK:STDOUT: .Y = // CHECK:STDOUT: // CHECK:STDOUT: !requires: -// CHECK:STDOUT: @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require { -// CHECK:STDOUT: require @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.%Self.as_type impls @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require.%Z_where.type.loc10_19.1 +// CHECK:STDOUT: @N.WithSelf.Self.as_type.impls.Z_where.type.require { +// CHECK:STDOUT: require @N.WithSelf.Self.as_type.impls.Z_where.type.require.%Self.as_type.loc10_11.1 impls @N.WithSelf.Self.as_type.impls.Z_where.type.require.%Z_where.type.loc10_19.1 // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic require @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { +// CHECK:STDOUT: generic require @N.WithSelf.Self.as_type.impls.Z_where.type.require(@N.%Self: %N.type) { // CHECK:STDOUT: %Self: %N.type = symbolic_binding Self, 0 [symbolic = %Self (constants.%Self.550)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 0, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %C.loc10_19: type = class_type @C, @C(%Self.binding.as_type) [symbolic = %C.loc10_19 (constants.%C.237)] -// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where %C.loc10_19 impls @Y, @Y(%Self.binding.as_type)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a6d533.2)] +// CHECK:STDOUT: %Self.as_type.loc10_11.2: type = facet_access_type %Self [symbolic = %Self.as_type.loc10_11.2 (constants.%Self.as_type)] +// CHECK:STDOUT: %C.loc10_19: type = class_type @C, @C(%Self.as_type.loc10_11.2) [symbolic = %C.loc10_19 (constants.%C.6c0)] +// CHECK:STDOUT: %Z_where.type.loc10_19.2: type = facet_type <@Z where %C.loc10_19 impls @Y, @Y(%Self.as_type.loc10_11.2)> [symbolic = %Z_where.type.loc10_19.2 (constants.%Z_where.type.a6d533.2)] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @N.WithSelf(constants.%Self.550) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(constants.%Self.550) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%Self.550) { // CHECK:STDOUT: %Self => constants.%Self.550 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %C.loc10_19 => constants.%C.237 +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%Self.as_type +// CHECK:STDOUT: %C.loc10_19 => constants.%C.6c0 // CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.a6d533.2 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -1554,10 +1554,10 @@ fn G(T:! Z) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: specific @N.WithSelf.Self.binding.as_type.impls.Z_where.type.require(constants.%T.ea3) { +// CHECK:STDOUT: specific @N.WithSelf.Self.as_type.impls.Z_where.type.require(constants.%T.ea3) { // CHECK:STDOUT: %Self => constants.%T.ea3 -// CHECK:STDOUT: %Self.binding.as_type => constants.%T.binding.as_type -// CHECK:STDOUT: %C.loc10_19 => constants.%C.3e1 +// CHECK:STDOUT: %Self.as_type.loc10_11.2 => constants.%T.as_type +// CHECK:STDOUT: %C.loc10_19 => constants.%C.dd2 // CHECK:STDOUT: %Z_where.type.loc10_19.2 => constants.%Z_where.type.a6d533.3 // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/index.carbon b/toolchain/check/testdata/operators/overloaded/index.carbon index f6259ad0707a..a48d78a33f97 100644 --- a/toolchain/check/testdata/operators/overloaded/index.carbon +++ b/toolchain/check/testdata/operators/overloaded/index.carbon @@ -190,8 +190,8 @@ fn F() { // CHECK:STDOUT: %IndexWith.generic: %IndexWith.type.a3a = struct_value () [concrete] // CHECK:STDOUT: %IndexWith.type.2c3: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic] // CHECK:STDOUT: %Self: %IndexWith.type.2c3 = symbolic_binding Self, 2 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.5ae: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.9fd: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %.822: Core.Form = init_form %ElementType [symbolic] // CHECK:STDOUT: %pattern_type.946: type = pattern_type %ElementType [symbolic] @@ -236,8 +236,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %IndexWith.WithSelf.At.decl: @IndexWith.WithSelf.%IndexWith.WithSelf.At.type (%IndexWith.WithSelf.At.type) = fn_decl @IndexWith.WithSelf.At [symbolic = @IndexWith.WithSelf.%IndexWith.WithSelf.At (constants.%IndexWith.WithSelf.At)] { -// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.5ae) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.5ae) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.9fd) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_13 (%pattern_type.9fd) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %subscript.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = value_param_pattern [concrete] // CHECK:STDOUT: %subscript.patt: @IndexWith.WithSelf.At.%pattern_type.loc5_30 (%pattern_type.51d) = at_binding_pattern subscript, %subscript.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @IndexWith.WithSelf.At.%pattern_type.loc5_50 (%pattern_type.946) = out_param_pattern [concrete] @@ -245,14 +245,14 @@ fn F() { // CHECK:STDOUT: } { // CHECK:STDOUT: %ElementType.ref: type = name_ref ElementType, @IndexWith.%ElementType.loc4_54.2 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %.loc5_50.2: Core.Form = init_form %ElementType.ref [symbolic = %.loc5_50.1 (constants.%.822)] -// CHECK:STDOUT: %self.param: @IndexWith.WithSelf.At.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @IndexWith.WithSelf.At.%Self.as_type.loc5_15.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc5_15.1: type = splice_block %.loc5_15.3 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc5_15.2: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.2c3) = specific_constant @IndexWith.%Self.loc4_63.1, @IndexWith(constants.%SubscriptType, constants.%ElementType) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.2c3) = name_ref Self, %.loc5_15.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc5_15.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc5_15.3: type = converted %Self.ref, %Self.as_type.loc5_15.2 [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @IndexWith.WithSelf.At.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @IndexWith.WithSelf.At.%Self.as_type.loc5_15.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %subscript.param: @IndexWith.WithSelf.At.%SubscriptType (%SubscriptType) = value_param call_param1 // CHECK:STDOUT: %SubscriptType.ref: type = name_ref SubscriptType, @IndexWith.%SubscriptType.loc4_34.2 [symbolic = %SubscriptType (constants.%SubscriptType)] // CHECK:STDOUT: %subscript: @IndexWith.WithSelf.At.%SubscriptType (%SubscriptType) = value_binding subscript, %subscript.param @@ -279,13 +279,13 @@ fn F() { // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.2c3)] // CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.2c3) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc5_13: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc5_13 (constants.%pattern_type.5ae)] +// CHECK:STDOUT: %Self.as_type.loc5_15.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc5_15.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc5_13: type = pattern_type %Self.as_type.loc5_15.1 [symbolic = %pattern_type.loc5_13 (constants.%pattern_type.9fd)] // CHECK:STDOUT: %pattern_type.loc5_30: type = pattern_type %SubscriptType [symbolic = %pattern_type.loc5_30 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.loc5_50.1: Core.Form = init_form %ElementType [symbolic = %.loc5_50.1 (constants.%.822)] // CHECK:STDOUT: %pattern_type.loc5_50: type = pattern_type %ElementType [symbolic = %pattern_type.loc5_50 (constants.%pattern_type.946)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @IndexWith.WithSelf.At.%Self.binding.as_type (%Self.binding.as_type), %subscript.param: @IndexWith.WithSelf.At.%SubscriptType (%SubscriptType)) -> out %return.param: @IndexWith.WithSelf.At.%ElementType (%ElementType); +// CHECK:STDOUT: fn(%self.param: @IndexWith.WithSelf.At.%Self.as_type.loc5_15.1 (%Self.as_type), %subscript.param: @IndexWith.WithSelf.At.%SubscriptType (%SubscriptType)) -> out %return.param: @IndexWith.WithSelf.At.%ElementType (%ElementType); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @IndexWith(constants.%SubscriptType, constants.%ElementType) { @@ -300,8 +300,8 @@ fn F() { // CHECK:STDOUT: %ElementType => constants.%ElementType // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.2c3 // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc5_13 => constants.%pattern_type.5ae +// CHECK:STDOUT: %Self.as_type.loc5_15.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc5_13 => constants.%pattern_type.9fd // CHECK:STDOUT: %pattern_type.loc5_30 => constants.%pattern_type.51d // CHECK:STDOUT: %.loc5_50.1 => constants.%.822 // CHECK:STDOUT: %pattern_type.loc5_50 => constants.%pattern_type.946 @@ -323,8 +323,8 @@ fn F() { // CHECK:STDOUT: %IndexWith.WithSelf.At.type.a9f: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(%SubscriptType, %ElementType, %Self.b10) [symbolic] // CHECK:STDOUT: %IndexWith.WithSelf.At.a38: %IndexWith.WithSelf.At.type.a9f = struct_value () [symbolic] // CHECK:STDOUT: %pattern_type.946: type = pattern_type %ElementType [symbolic] -// CHECK:STDOUT: %Self.binding.as_type.79f: type = symbolic_binding_type Self, 2, %Self.b10 [symbolic] -// CHECK:STDOUT: %pattern_type.994: type = pattern_type %Self.binding.as_type.79f [symbolic] +// CHECK:STDOUT: %Self.as_type.6f2: type = facet_access_type %Self.b10 [symbolic] +// CHECK:STDOUT: %pattern_type.35b: type = pattern_type %Self.as_type.6f2 [symbolic] // CHECK:STDOUT: %.822: Core.Form = init_form %ElementType [symbolic] // CHECK:STDOUT: %pattern_type.51d: type = pattern_type %SubscriptType [symbolic] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -459,8 +459,8 @@ fn F() { // CHECK:STDOUT: %ElementType: type = symbolic_binding ElementType, 1 [symbolic = %ElementType (constants.%ElementType)] // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(%SubscriptType, %ElementType)> [symbolic = %IndexWith.type (constants.%IndexWith.type.1e9)] // CHECK:STDOUT: %Self: @IndexWith.WithSelf.At.%IndexWith.type (%IndexWith.type.1e9) = symbolic_binding Self, 2 [symbolic = %Self (constants.%Self.b10)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 2, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type.79f)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.994)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type.6f2)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.35b)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %SubscriptType [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: %.1: Core.Form = init_form %ElementType [symbolic = %.1 (constants.%.822)] // CHECK:STDOUT: %pattern_type.3: type = pattern_type %ElementType [symbolic = %pattern_type.3 (constants.%pattern_type.946)] @@ -514,8 +514,8 @@ fn F() { // CHECK:STDOUT: %ElementType => constants.%ElementType // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.1e9 // CHECK:STDOUT: %Self => constants.%Self.b10 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type.79f -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.994 +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type.6f2 +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.35b // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: %.1 => constants.%.822 // CHECK:STDOUT: %pattern_type.3 => constants.%pattern_type.946 @@ -559,7 +559,7 @@ fn F() { // CHECK:STDOUT: %ElementType => constants.%empty_tuple.type // CHECK:STDOUT: %IndexWith.type => constants.%IndexWith.type.483 // CHECK:STDOUT: %Self => constants.%IndexWith.facet -// CHECK:STDOUT: %Self.binding.as_type => constants.%C +// CHECK:STDOUT: %Self.as_type => constants.%C // CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.7c7 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.cb1 // CHECK:STDOUT: %.1 => constants.%.262 diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index abf187f9bf3d..bba0204a69c3 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -98,7 +98,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self: %IndexWith.type.bbe = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %IndexWith.assoc_type.b14: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.9ec) [concrete] // CHECK:STDOUT: %assoc0.ab8: %IndexWith.assoc_type.b14 = assoc_entity element0, imports.%Core.import_ref.434 [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %assoc0.f5a: %IndexWith.assoc_type.a96 = assoc_entity element0, imports.%Core.import_ref.d9b [symbolic] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.407: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.9ec) [symbolic_self] // CHECK:STDOUT: %impl.elem0.9d3: type = impl_witness_access %IndexWith.lookup_impl_witness.407, element0 [symbolic_self] @@ -156,8 +156,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.9ec)> [concrete = constants.%IndexWith.type.bbe] // CHECK:STDOUT: %.Self: %IndexWith.type.bbe = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %IndexWith.type.bbe = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.b14 = specific_constant imports.%Core.import_ref.c44, @IndexWith.WithSelf(constants.%SubscriptType.9ec, constants.%.Self) [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.b14 = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.407, element0 [symbolic_self = constants.%impl.elem0.9d3] @@ -292,7 +292,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self: %IndexWith.type.d54 = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %IndexWith.assoc_type.972: type = assoc_entity_type @IndexWith, @IndexWith(Core.IntLiteral) [concrete] // CHECK:STDOUT: %assoc0.b00: %IndexWith.assoc_type.972 = assoc_entity element0, imports.%Core.import_ref.434 [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %assoc0.f5a: %IndexWith.assoc_type.a96 = assoc_entity element0, imports.%Core.import_ref.d9b [symbolic] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.6f5: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(Core.IntLiteral) [symbolic_self] // CHECK:STDOUT: %impl.elem0.d7c: type = impl_witness_access %IndexWith.lookup_impl_witness.6f5, element0 [symbolic_self] @@ -351,8 +351,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(Core.IntLiteral)> [concrete = constants.%IndexWith.type.d54] // CHECK:STDOUT: %.Self: %IndexWith.type.d54 = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %IndexWith.type.d54 = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_56.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_56.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_56.2: %IndexWith.assoc_type.972 = specific_constant imports.%Core.import_ref.c44, @IndexWith.WithSelf(Core.IntLiteral, constants.%.Self) [concrete = constants.%assoc0.b00] // CHECK:STDOUT: %ElementType.ref: %IndexWith.assoc_type.972 = name_ref ElementType, %.loc8_56.2 [concrete = constants.%assoc0.b00] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.6f5, element0 [symbolic_self = constants.%impl.elem0.d7c] @@ -483,7 +483,7 @@ let x: i32 = c[0]; // CHECK:STDOUT: %.Self: %IndexWith.type.bbe = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %IndexWith.assoc_type.b14: type = assoc_entity_type @IndexWith, @IndexWith(%SubscriptType.9ec) [concrete] // CHECK:STDOUT: %assoc0.ab8: %IndexWith.assoc_type.b14 = assoc_entity element0, imports.%Core.import_ref.434 [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %assoc0.f5a: %IndexWith.assoc_type.a96 = assoc_entity element0, imports.%Core.import_ref.d9b [symbolic] // CHECK:STDOUT: %IndexWith.lookup_impl_witness.407: = lookup_impl_witness %.Self, @IndexWith, @IndexWith(%SubscriptType.9ec) [symbolic_self] // CHECK:STDOUT: %impl.elem0.9d3: type = impl_witness_access %IndexWith.lookup_impl_witness.407, element0 [symbolic_self] @@ -536,8 +536,8 @@ let x: i32 = c[0]; // CHECK:STDOUT: %IndexWith.type: type = facet_type <@IndexWith, @IndexWith(constants.%SubscriptType.9ec)> [concrete = constants.%IndexWith.type.bbe] // CHECK:STDOUT: %.Self: %IndexWith.type.bbe = symbolic_binding .Self [symbolic_self = constants.%.Self] // CHECK:STDOUT: %.Self.ref: %IndexWith.type.bbe = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc8_47.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc8_47.2: %IndexWith.assoc_type.b14 = specific_constant imports.%Core.import_ref.c44, @IndexWith.WithSelf(constants.%SubscriptType.9ec, constants.%.Self) [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: %ElementType.ref.loc8_47: %IndexWith.assoc_type.b14 = name_ref ElementType, %.loc8_47.2 [concrete = constants.%assoc0.ab8] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%IndexWith.lookup_impl_witness.407, element0 [symbolic_self = constants.%impl.elem0.9d3] diff --git a/toolchain/check/testdata/operators/overloaded/string_indexing.carbon b/toolchain/check/testdata/operators/overloaded/string_indexing.carbon index 913837e6418b..741a75bcc35e 100644 --- a/toolchain/check/testdata/operators/overloaded/string_indexing.carbon +++ b/toolchain/check/testdata/operators/overloaded/string_indexing.carbon @@ -118,18 +118,18 @@ fn TestStringIndexing() { // CHECK:STDOUT: %i64: type = class_type @Int, @Int(%int_64) [concrete] // CHECK:STDOUT: %ImplicitAs.type.2ad: type = facet_type <@ImplicitAs, @ImplicitAs(%i64)> [concrete] // CHECK:STDOUT: %T.1a9: %ImplicitAs.type.2ad = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.85b: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%T.1a9) [symbolic] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.4fc: %str.as.IndexWith.impl.At.type.85b = struct_value () [symbolic] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.3c3: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%T.1a9) [symbolic] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.1d6: %str.as.IndexWith.impl.At.type.3c3 = struct_value () [symbolic] // CHECK:STDOUT: %ImplicitAs.impl_witness.4e6: = impl_witness imports.%ImplicitAs.impl_witness_table.373, @Core.IntLiteral.as.ImplicitAs.impl(%int_64) [concrete] // CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.2ad = facet_value Core.IntLiteral, (%ImplicitAs.impl_witness.4e6) [concrete] -// CHECK:STDOUT: %IndexWith.impl_witness.8d4: = impl_witness imports.%IndexWith.impl_witness_table, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.595: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.a70: %str.as.IndexWith.impl.At.type.595 = struct_value () [concrete] -// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d54 = facet_value %str.ee0, (%IndexWith.impl_witness.8d4) [concrete] -// CHECK:STDOUT: %IndexWith.WithSelf.At.type.0ac: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] -// CHECK:STDOUT: %.b7b: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.0ac, %IndexWith.facet [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.bound: = bound_method %String.val, %str.as.IndexWith.impl.At.a70 [concrete] -// CHECK:STDOUT: %str.as.IndexWith.impl.At.specific_fn: = specific_function %str.as.IndexWith.impl.At.a70, @str.as.IndexWith.impl.At(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %IndexWith.impl_witness.e06: = impl_witness imports.%IndexWith.impl_witness_table, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.type.0c0: type = fn_type @str.as.IndexWith.impl.At, @str.as.IndexWith.impl(%ImplicitAs.facet) [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.17e: %str.as.IndexWith.impl.At.type.0c0 = struct_value () [concrete] +// CHECK:STDOUT: %IndexWith.facet: %IndexWith.type.d54 = facet_value %str.ee0, (%IndexWith.impl_witness.e06) [concrete] +// CHECK:STDOUT: %IndexWith.WithSelf.At.type.dce: type = fn_type @IndexWith.WithSelf.At, @IndexWith.WithSelf(Core.IntLiteral, %IndexWith.facet) [concrete] +// CHECK:STDOUT: %.36b: type = fn_type_with_self_type %IndexWith.WithSelf.At.type.dce, %IndexWith.facet [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.bound: = bound_method %String.val, %str.as.IndexWith.impl.At.17e [concrete] +// CHECK:STDOUT: %str.as.IndexWith.impl.At.specific_fn: = specific_function %str.as.IndexWith.impl.At.17e, @str.as.IndexWith.impl.At(%ImplicitAs.facet) [concrete] // CHECK:STDOUT: %bound_method: = bound_method %String.val, %str.as.IndexWith.impl.At.specific_fn [concrete] // CHECK:STDOUT: %int_84: %char = int_value 84 [concrete] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete] @@ -138,8 +138,8 @@ fn TestStringIndexing() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core.import_ref.aa4 = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, unloaded -// CHECK:STDOUT: %Core.import_ref.0ce: @str.as.IndexWith.impl.%str.as.IndexWith.impl.At.type (%str.as.IndexWith.impl.At.type.85b) = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, loaded [symbolic = @str.as.IndexWith.impl.%str.as.IndexWith.impl.At (constants.%str.as.IndexWith.impl.At.4fc)] -// CHECK:STDOUT: %IndexWith.impl_witness_table = impl_witness_table (%Core.import_ref.aa4, %Core.import_ref.0ce), @str.as.IndexWith.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.afc: @str.as.IndexWith.impl.%str.as.IndexWith.impl.At.type (%str.as.IndexWith.impl.At.type.3c3) = import_ref Core//prelude/types/string, loc{{\d+_\d+}}, loaded [symbolic = @str.as.IndexWith.impl.%str.as.IndexWith.impl.At (constants.%str.as.IndexWith.impl.At.1d6)] +// CHECK:STDOUT: %IndexWith.impl_witness_table = impl_witness_table (%Core.import_ref.aa4, %Core.import_ref.afc), @str.as.IndexWith.impl [concrete] // CHECK:STDOUT: %Core.import_ref.8ed = import_ref Core//prelude/types/int, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %ImplicitAs.impl_witness_table.373 = impl_witness_table (%Core.import_ref.8ed), @Core.IntLiteral.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } @@ -153,7 +153,7 @@ fn TestStringIndexing() { // CHECK:STDOUT: %int_4.loc5: %u64 = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %String.val.loc5: %str.ee0 = struct_value (%str.loc5, %int_4.loc5) [concrete = constants.%String.val] // CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %impl.elem1.loc5: %.b7b = impl_witness_access constants.%IndexWith.impl_witness.8d4, element1 [concrete = constants.%str.as.IndexWith.impl.At.a70] +// CHECK:STDOUT: %impl.elem1.loc5: %.36b = impl_witness_access constants.%IndexWith.impl_witness.e06, element1 [concrete = constants.%str.as.IndexWith.impl.At.17e] // CHECK:STDOUT: %bound_method.loc5_32.1: = bound_method %String.val.loc5, %impl.elem1.loc5 [concrete = constants.%str.as.IndexWith.impl.At.bound] // CHECK:STDOUT: %ImplicitAs.facet.loc5: %ImplicitAs.type.2ad = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.4e6) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc5_32.1: %ImplicitAs.type.2ad = converted Core.IntLiteral, %ImplicitAs.facet.loc5 [concrete = constants.%ImplicitAs.facet] @@ -171,7 +171,7 @@ fn TestStringIndexing() { // CHECK:STDOUT: %int_4.loc6: %u64 = int_value 4 [concrete = constants.%int_4] // CHECK:STDOUT: %String.val.loc6: %str.ee0 = struct_value (%str.loc6, %int_4.loc6) [concrete = constants.%String.val] // CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [concrete = constants.%int_3] -// CHECK:STDOUT: %impl.elem1.loc6: %.b7b = impl_witness_access constants.%IndexWith.impl_witness.8d4, element1 [concrete = constants.%str.as.IndexWith.impl.At.a70] +// CHECK:STDOUT: %impl.elem1.loc6: %.36b = impl_witness_access constants.%IndexWith.impl_witness.e06, element1 [concrete = constants.%str.as.IndexWith.impl.At.17e] // CHECK:STDOUT: %bound_method.loc6_32.1: = bound_method %String.val.loc6, %impl.elem1.loc6 [concrete = constants.%str.as.IndexWith.impl.At.bound] // CHECK:STDOUT: %ImplicitAs.facet.loc6: %ImplicitAs.type.2ad = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.4e6) [concrete = constants.%ImplicitAs.facet] // CHECK:STDOUT: %.loc6_32.1: %ImplicitAs.type.2ad = converted Core.IntLiteral, %ImplicitAs.facet.loc6 [concrete = constants.%ImplicitAs.facet] diff --git a/toolchain/check/testdata/packages/missing_prelude.carbon b/toolchain/check/testdata/packages/missing_prelude.carbon index 562561d1647f..bbd082d893b2 100644 --- a/toolchain/check/testdata/packages/missing_prelude.carbon +++ b/toolchain/check/testdata/packages/missing_prelude.carbon @@ -203,8 +203,8 @@ let n: type = i32; // CHECK:STDOUT: %ImplicitAs.generic: %ImplicitAs.type.595 = struct_value () [concrete] // CHECK:STDOUT: %ImplicitAs.type.9fe: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic] // CHECK:STDOUT: %Self: %ImplicitAs.type.9fe = symbolic_binding Self, 1 [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic] -// CHECK:STDOUT: %pattern_type.8de: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic] +// CHECK:STDOUT: %pattern_type.446: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert: %ImplicitAs.WithSelf.Convert.type = struct_value () [symbolic] @@ -264,21 +264,21 @@ let n: type = i32; // CHECK:STDOUT: // CHECK:STDOUT: !with Self: // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.decl: @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert.type (%ImplicitAs.WithSelf.Convert.type) = fn_decl @ImplicitAs.WithSelf.Convert [symbolic = @ImplicitAs.WithSelf.%ImplicitAs.WithSelf.Convert (constants.%ImplicitAs.WithSelf.Convert)] { -// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.8de) = value_param_pattern [concrete] -// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.8de) = at_binding_pattern self, %self.param_patt [concrete] +// CHECK:STDOUT: %self.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.446) = value_param_pattern [concrete] +// CHECK:STDOUT: %self.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_18 (%pattern_type.446) = at_binding_pattern self, %self.param_patt [concrete] // CHECK:STDOUT: %return.param_patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = out_param_pattern [concrete] // CHECK:STDOUT: %return.patt: @ImplicitAs.WithSelf.Convert.%pattern_type.loc9_31 (%pattern_type.51d) = return_slot_pattern %return.param_patt, %T.ref [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %T.ref: type = name_ref T, @ImplicitAs.%T.loc8_23.2 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %.loc9_31.2: Core.Form = init_form %T.ref [symbolic = %.loc9_31.1 (constants.%.184)] -// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_param call_param0 -// CHECK:STDOUT: %.loc9_20.1: type = splice_block %.loc9_20.3 [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] { +// CHECK:STDOUT: %self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc9_20.1 (%Self.as_type) = value_param call_param0 +// CHECK:STDOUT: %.loc9_20.1: type = splice_block %.loc9_20.3 [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] { // CHECK:STDOUT: %.loc9_20.2: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = specific_constant @ImplicitAs.%Self.loc8_32.1, @ImplicitAs(constants.%T) [symbolic = %Self (constants.%Self)] // CHECK:STDOUT: %Self.ref: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = name_ref Self, %.loc9_20.2 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.ref [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %.loc9_20.3: type = converted %Self.ref, %Self.as_type [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] +// CHECK:STDOUT: %Self.as_type.loc9_20.2: type = facet_access_type %Self.ref [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %.loc9_20.3: type = converted %Self.ref, %Self.as_type.loc9_20.2 [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] // CHECK:STDOUT: } -// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type) = value_binding self, %self.param +// CHECK:STDOUT: %self: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc9_20.1 (%Self.as_type) = value_binding self, %self.param // CHECK:STDOUT: %return.param: ref @ImplicitAs.WithSelf.Convert.%T (%T) = out_param call_param1 // CHECK:STDOUT: %return: ref @ImplicitAs.WithSelf.Convert.%T (%T) = return_slot %return.param // CHECK:STDOUT: } @@ -323,12 +323,12 @@ let n: type = i32; // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.9fe)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.9fe) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.loc9_18: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.loc9_18 (constants.%pattern_type.8de)] +// CHECK:STDOUT: %Self.as_type.loc9_20.1: type = facet_access_type %Self [symbolic = %Self.as_type.loc9_20.1 (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.loc9_18: type = pattern_type %Self.as_type.loc9_20.1 [symbolic = %pattern_type.loc9_18 (constants.%pattern_type.446)] // CHECK:STDOUT: %.loc9_31.1: Core.Form = init_form %T [symbolic = %.loc9_31.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.loc9_31: type = pattern_type %T [symbolic = %pattern_type.loc9_31 (constants.%pattern_type.51d)] // CHECK:STDOUT: -// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.binding.as_type (%Self.binding.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); +// CHECK:STDOUT: fn(%self.param: @ImplicitAs.WithSelf.Convert.%Self.as_type.loc9_20.1 (%Self.as_type)) -> out %return.param: @ImplicitAs.WithSelf.Convert.%T (%T); // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Int(constants.%T, constants.%N) { @@ -347,8 +347,8 @@ let n: type = i32; // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.9fe // CHECK:STDOUT: %Self => constants.%Self -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.loc9_18 => constants.%pattern_type.8de +// CHECK:STDOUT: %Self.as_type.loc9_20.1 => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.loc9_18 => constants.%pattern_type.446 // CHECK:STDOUT: %.loc9_31.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.loc9_31 => constants.%pattern_type.51d // CHECK:STDOUT: } @@ -375,8 +375,8 @@ let n: type = i32; // CHECK:STDOUT: %ImplicitAs.assoc_type.ff3: type = assoc_entity_type @ImplicitAs, @ImplicitAs(%T) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.b3a: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%T, %Self.738) [symbolic] // CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.1de: %ImplicitAs.WithSelf.Convert.type.b3a = struct_value () [symbolic] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self.738 [symbolic] -// CHECK:STDOUT: %pattern_type.e9a: type = pattern_type %Self.binding.as_type [symbolic] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self.738 [symbolic] +// CHECK:STDOUT: %pattern_type.9e2: type = pattern_type %Self.as_type [symbolic] // CHECK:STDOUT: %.184: Core.Form = init_form %T [symbolic] // CHECK:STDOUT: %ImplicitAs.type.151: type = facet_type <@ImplicitAs, @ImplicitAs(type)> [concrete] // CHECK:STDOUT: %Self.a80: %ImplicitAs.type.151 = symbolic_binding Self, 1 [symbolic] @@ -472,8 +472,8 @@ let n: type = i32; // CHECK:STDOUT: %T: type = symbolic_binding T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %ImplicitAs.type: type = facet_type <@ImplicitAs, @ImplicitAs(%T)> [symbolic = %ImplicitAs.type (constants.%ImplicitAs.type.031)] // CHECK:STDOUT: %Self: @ImplicitAs.WithSelf.Convert.%ImplicitAs.type (%ImplicitAs.type.031) = symbolic_binding Self, 1 [symbolic = %Self (constants.%Self.738)] -// CHECK:STDOUT: %Self.binding.as_type: type = symbolic_binding_type Self, 1, %Self [symbolic = %Self.binding.as_type (constants.%Self.binding.as_type)] -// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.binding.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.e9a)] +// CHECK:STDOUT: %Self.as_type: type = facet_access_type %Self [symbolic = %Self.as_type (constants.%Self.as_type)] +// CHECK:STDOUT: %pattern_type.1: type = pattern_type %Self.as_type [symbolic = %pattern_type.1 (constants.%pattern_type.9e2)] // CHECK:STDOUT: %.1: Core.Form = init_form %T [symbolic = %.1 (constants.%.184)] // CHECK:STDOUT: %pattern_type.2: type = pattern_type %T [symbolic = %pattern_type.2 (constants.%pattern_type.51d)] // CHECK:STDOUT: @@ -514,8 +514,8 @@ let n: type = i32; // CHECK:STDOUT: %T => constants.%T // CHECK:STDOUT: %ImplicitAs.type => constants.%ImplicitAs.type.031 // CHECK:STDOUT: %Self => constants.%Self.738 -// CHECK:STDOUT: %Self.binding.as_type => constants.%Self.binding.as_type -// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.e9a +// CHECK:STDOUT: %Self.as_type => constants.%Self.as_type +// CHECK:STDOUT: %pattern_type.1 => constants.%pattern_type.9e2 // CHECK:STDOUT: %.1 => constants.%.184 // CHECK:STDOUT: %pattern_type.2 => constants.%pattern_type.51d // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/pointer/nested_const.carbon b/toolchain/check/testdata/pointer/nested_const.carbon index cbb28c8bd23b..7a39a5b6a10e 100644 --- a/toolchain/check/testdata/pointer/nested_const.carbon +++ b/toolchain/check/testdata/pointer/nested_const.carbon @@ -39,17 +39,17 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %Int.as.Copy.impl.Op.type.824: type = fn_type @Int.as.Copy.impl.Op, @Int.as.Copy.impl(%N) [symbolic] // CHECK:STDOUT: %Int.as.Copy.impl.Op.9b9: %Int.as.Copy.impl.Op.type.824 = struct_value () [symbolic] // CHECK:STDOUT: %T.035: %Copy.type = symbolic_binding T, 0 [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.5eb: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.035) [symbolic] -// CHECK:STDOUT: %const.as.Copy.impl.Op.cc6: %const.as.Copy.impl.Op.type.5eb = struct_value () [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.bc0: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%T.035) [symbolic] +// CHECK:STDOUT: %const.as.Copy.impl.Op.6ce: %const.as.Copy.impl.Op.type.bc0 = struct_value () [symbolic] // CHECK:STDOUT: %Copy.impl_witness.f17: = impl_witness imports.%Copy.impl_witness_table.e76, @Int.as.Copy.impl(%int_32) [concrete] // CHECK:STDOUT: %Copy.facet.de4: %Copy.type = facet_value %i32, (%Copy.impl_witness.f17) [concrete] -// CHECK:STDOUT: %Copy.impl_witness.286: = impl_witness imports.%Copy.impl_witness_table.a26, @const.as.Copy.impl(%Copy.facet.de4) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.type.ed9: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.de4) [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.686: %const.as.Copy.impl.Op.type.ed9 = struct_value () [concrete] -// CHECK:STDOUT: %Copy.facet.7d9: %Copy.type = facet_value %const.20a, (%Copy.impl_witness.286) [concrete] -// CHECK:STDOUT: %Copy.WithSelf.Op.type.ba7: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.7d9) [concrete] -// CHECK:STDOUT: %.2d3: type = fn_type_with_self_type %Copy.WithSelf.Op.type.ba7, %Copy.facet.7d9 [concrete] -// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.686, @const.as.Copy.impl.Op(%Copy.facet.de4) [concrete] +// CHECK:STDOUT: %Copy.impl_witness.31c: = impl_witness imports.%Copy.impl_witness_table.29e, @const.as.Copy.impl(%Copy.facet.de4) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.type.f01: type = fn_type @const.as.Copy.impl.Op, @const.as.Copy.impl(%Copy.facet.de4) [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.97f: %const.as.Copy.impl.Op.type.f01 = struct_value () [concrete] +// CHECK:STDOUT: %Copy.facet.84b: %Copy.type = facet_value %const.20a, (%Copy.impl_witness.31c) [concrete] +// CHECK:STDOUT: %Copy.WithSelf.Op.type.f75: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.84b) [concrete] +// CHECK:STDOUT: %.966: type = fn_type_with_self_type %Copy.WithSelf.Op.type.f75, %Copy.facet.84b [concrete] +// CHECK:STDOUT: %const.as.Copy.impl.Op.specific_fn: = specific_function %const.as.Copy.impl.Op.97f, @const.as.Copy.impl.Op(%Copy.facet.de4) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { @@ -63,8 +63,8 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %Core.Copy: type = import_ref Core//prelude/parts/copy, Copy, loaded [concrete = constants.%Copy.type] // CHECK:STDOUT: %Core.import_ref.18d: @Int.as.Copy.impl.%Int.as.Copy.impl.Op.type (%Int.as.Copy.impl.Op.type.824) = import_ref Core//prelude/parts/int, loc{{\d+_\d+}}, loaded [symbolic = @Int.as.Copy.impl.%Int.as.Copy.impl.Op (constants.%Int.as.Copy.impl.Op.9b9)] // CHECK:STDOUT: %Copy.impl_witness_table.e76 = impl_witness_table (%Core.import_ref.18d), @Int.as.Copy.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.ae5: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.5eb) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.cc6)] -// CHECK:STDOUT: %Copy.impl_witness_table.a26 = impl_witness_table (%Core.import_ref.ae5), @const.as.Copy.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.091: @const.as.Copy.impl.%const.as.Copy.impl.Op.type (%const.as.Copy.impl.Op.type.bc0) = import_ref Core//prelude/parts/copy, loc{{\d+_\d+}}, loaded [symbolic = @const.as.Copy.impl.%const.as.Copy.impl.Op (constants.%const.as.Copy.impl.Op.6ce)] +// CHECK:STDOUT: %Copy.impl_witness_table.29e = impl_witness_table (%Core.import_ref.091), @const.as.Copy.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -104,7 +104,7 @@ fn F(p: const (const (const i32*)*)) -> const i32 { // CHECK:STDOUT: %.loc17_11.2: %const.58f = acquire_value %.loc17_11.1 // CHECK:STDOUT: %.loc17_10.1: ref %const.20a = deref %.loc17_11.2 // CHECK:STDOUT: %.loc17_10.2: %const.20a = acquire_value %.loc17_10.1 -// CHECK:STDOUT: %impl.elem0: %.2d3 = impl_witness_access constants.%Copy.impl_witness.286, element0 [concrete = constants.%const.as.Copy.impl.Op.686] +// CHECK:STDOUT: %impl.elem0: %.966 = impl_witness_access constants.%Copy.impl_witness.31c, element0 [concrete = constants.%const.as.Copy.impl.Op.97f] // CHECK:STDOUT: %bound_method.loc17_10.1: = bound_method %.loc17_10.2, %impl.elem0 // CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @const.as.Copy.impl.Op(constants.%Copy.facet.de4) [concrete = constants.%const.as.Copy.impl.Op.specific_fn] // CHECK:STDOUT: %bound_method.loc17_10.2: = bound_method %.loc17_10.2, %specific_fn diff --git a/toolchain/check/testdata/where_expr/constraints.carbon b/toolchain/check/testdata/where_expr/constraints.carbon index 7ea76245f5cc..3e95f5147082 100644 --- a/toolchain/check/testdata/where_expr/constraints.carbon +++ b/toolchain/check/testdata/where_expr/constraints.carbon @@ -189,7 +189,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %.Self.1dc: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %pattern_type: type = pattern_type %I.type [concrete] // CHECK:STDOUT: %T: %I.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] @@ -208,8 +208,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %.loc7_30: type = type_literal type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc7_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc7_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc7_12.2: type = where_expr %.Self.2 [concrete = constants.%I.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc7_18, %.loc7_30 @@ -226,8 +226,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %Type.ref: type = name_ref Type, file.%Type [concrete = type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc13_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc13_12.2: type = where_expr %.Self.2 [concrete = constants.%I.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc13_18, %Type.ref @@ -262,7 +262,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %I.type: type = facet_type <@I> [concrete] // CHECK:STDOUT: %.Self.1dc: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %F.type: type = fn_type @F [concrete] // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -277,8 +277,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %J.ref: = name_ref J, [concrete = ] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc14_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc14_18: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc14_12.2: type = where_expr %.Self.2 [concrete = ] { // CHECK:STDOUT: requirement_base_facet_type constants.%I.type // CHECK:STDOUT: requirement_impls %.loc14_18, @@ -310,13 +310,13 @@ fn F() { // CHECK:STDOUT: %EqualEqual.type: type = fn_type @EqualEqual [concrete] // CHECK:STDOUT: %EqualEqual: %EqualEqual.type = struct_value () [concrete] // CHECK:STDOUT: %.Self.2fa: %J.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type.ac6: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.7b1: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J_where.type: type = facet_type <@J where .Self impls @I> [concrete] // CHECK:STDOUT: %pattern_type.2e5: type = pattern_type %J_where.type [concrete] // CHECK:STDOUT: %V: %J_where.type = symbolic_binding V, 0 [symbolic] // CHECK:STDOUT: %Impls.type: type = fn_type @Impls [concrete] // CHECK:STDOUT: %Impls: %Impls.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.15d: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.e58: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.1dc, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %I_where.type.ac1: type = facet_type <@I where .Self impls @J and TODO> [concrete] @@ -352,8 +352,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.ac6] -// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.ac6] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.7b1] +// CHECK:STDOUT: %.loc14_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.7b1] // CHECK:STDOUT: %.loc14_16.2: type = where_expr %.Self.2 [concrete = constants.%J_where.type] { // CHECK:STDOUT: requirement_base_facet_type constants.%J.type // CHECK:STDOUT: requirement_impls %.loc14_22, %I.ref @@ -370,11 +370,11 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc16_20: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] -// CHECK:STDOUT: %.Self.as_type.loc16_20: type = facet_access_type %.Self.ref.loc16_20 [symbolic_self = constants.%.Self.binding.as_type.15d] -// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.binding.as_type.15d] +// CHECK:STDOUT: %.Self.as_type.loc16_20: type = facet_access_type %.Self.ref.loc16_20 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc16_20: type = converted %.Self.ref.loc16_20, %.Self.as_type.loc16_20 [symbolic_self = constants.%.Self.as_type.e58] // CHECK:STDOUT: %.Self.ref.loc16_38: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.binding.as_type.15d] -// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.binding.as_type.15d] +// CHECK:STDOUT: %.Self.as_type.loc16_38: type = facet_access_type %.Self.ref.loc16_38 [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc16_38: type = converted %.Self.ref.loc16_38, %.Self.as_type.loc16_38 [symbolic_self = constants.%.Self.as_type.e58] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc16_50: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -427,7 +427,7 @@ fn F() { // CHECK:STDOUT: %K.assoc_type: type = assoc_entity_type @K [concrete] // CHECK:STDOUT: %assoc0: %K.assoc_type = assoc_entity element0, @K.WithSelf.%Associated [concrete] // CHECK:STDOUT: %.Self.2ca: %K.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2ca [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2ca [symbolic_self] // CHECK:STDOUT: %K.lookup_impl_witness: = lookup_impl_witness %.Self.2ca, @K [symbolic_self] // CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access %K.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %as_type: type = facet_access_type %impl.elem0 [symbolic_self] @@ -447,8 +447,8 @@ fn F() { // CHECK:STDOUT: %K.ref: type = name_ref K, file.%K.decl [concrete = constants.%K.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %K.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2ca] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc12_36.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc12_36.1: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %Associated.ref: %K.assoc_type = name_ref Associated, @Associated.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: %L.type = impl_witness_access constants.%K.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %M.ref: type = name_ref M, file.%M.decl [concrete = constants.%M.type] @@ -478,7 +478,7 @@ fn F() { // CHECK:STDOUT: constants { // CHECK:STDOUT: %type: type = facet_type [concrete] // CHECK:STDOUT: %.Self: %type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %WithError.type: type = fn_type @WithError [concrete] // CHECK:STDOUT: %WithError: %WithError.type = struct_value () [concrete] // CHECK:STDOUT: } @@ -493,8 +493,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self] // CHECK:STDOUT: %I.ref: = name_ref I, [concrete = ] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %.loc9_23.2: type = where_expr %.Self.2 [concrete = ] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc9_29, diff --git a/toolchain/check/testdata/where_expr/designator.carbon b/toolchain/check/testdata/where_expr/designator.carbon index 542b26b88246..f43278ce6724 100644 --- a/toolchain/check/testdata/where_expr/designator.carbon +++ b/toolchain/check/testdata/where_expr/designator.carbon @@ -155,13 +155,13 @@ fn G(unused T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: %T: %I_where.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %PeriodSelf.type: type = fn_type @PeriodSelf [concrete] // CHECK:STDOUT: %PeriodSelf: %PeriodSelf.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.15d: type = symbolic_binding_type .Self, %.Self.1dc [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.e58: type = facet_access_type %.Self.1dc [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self.1dc, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %U: %I_where.type = symbolic_binding U, 0 [symbolic] // CHECK:STDOUT: %PeriodMember.type: type = fn_type @PeriodMember [concrete] // CHECK:STDOUT: %PeriodMember: %PeriodMember.type = struct_value () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.8db: type = symbolic_binding_type .Self, %.Self.c39 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.246: type = facet_access_type %.Self.c39 [symbolic_self] // CHECK:STDOUT: %type_where: type = facet_type [concrete] // CHECK:STDOUT: %pattern_type.17f: type = pattern_type %type_where [concrete] // CHECK:STDOUT: %V: %type_where = symbolic_binding V, 0 [symbolic] @@ -194,8 +194,8 @@ fn G(unused T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.1dc] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.15d] -// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.15d] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.e58] +// CHECK:STDOUT: %.loc11_29: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.e58] // CHECK:STDOUT: %Member.ref: %I.assoc_type = name_ref Member, @Member.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc11_41: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -215,8 +215,8 @@ fn G(unused T:! type where C(()) impls I(.Self)) {} // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.c39] // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type.8db] -// CHECK:STDOUT: %.loc13_33: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type.8db] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type.246] +// CHECK:STDOUT: %.loc13_33: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type.246] // CHECK:STDOUT: %.loc13_27.2: type = where_expr %.Self.2 [concrete = constants.%type_where] { // CHECK:STDOUT: requirement_base_facet_type type // CHECK:STDOUT: requirement_impls %.loc13_33, %I.ref diff --git a/toolchain/check/testdata/where_expr/dot_self_index.carbon b/toolchain/check/testdata/where_expr/dot_self_index.carbon index 0b67978d9540..a03ba503629a 100644 --- a/toolchain/check/testdata/where_expr/dot_self_index.carbon +++ b/toolchain/check/testdata/where_expr/dot_self_index.carbon @@ -37,7 +37,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.assoc_type.ce4b5a.2: type = assoc_entity_type @Empty, @Empty(%T) [symbolic] // CHECK:STDOUT: %assoc0.beb632.2: %Empty.assoc_type.ce4b5a.2 = assoc_entity element0, @Empty.WithSelf.%A [symbolic] // CHECK:STDOUT: %require_complete.8eb: = require_complete_type %Empty.type.6f76f1.2 [symbolic] -// CHECK:STDOUT: %.Self.binding.as_type.b61: type = symbolic_binding_type .Self, %.Self.b4b [symbolic] +// CHECK:STDOUT: %.Self.as_type.4db: type = facet_access_type %.Self.b4b [symbolic] // CHECK:STDOUT: %Empty.lookup_impl_witness.177: = lookup_impl_witness %.Self.b4b, @Empty, @Empty(%T) [symbolic] // CHECK:STDOUT: %impl.elem0.de5: type = impl_witness_access %Empty.lookup_impl_witness.177, element0 [symbolic] // CHECK:STDOUT: %ptr.e8f: type = ptr_type %T [symbolic] @@ -53,7 +53,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %.Self.ec6: %Empty.type.4fb = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %Empty.assoc_type.623: type = assoc_entity_type @Empty, @Empty(%i32) [concrete] // CHECK:STDOUT: %assoc0.edc: %Empty.assoc_type.623 = assoc_entity element0, @Empty.WithSelf.%A [concrete] -// CHECK:STDOUT: %.Self.binding.as_type.63c: type = symbolic_binding_type .Self, %.Self.ec6 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type.b09: type = facet_access_type %.Self.ec6 [symbolic_self] // CHECK:STDOUT: %Empty.lookup_impl_witness.924: = lookup_impl_witness %.Self.ec6, @Empty, @Empty(%i32) [symbolic_self] // CHECK:STDOUT: %impl.elem0.238: type = impl_witness_access %Empty.lookup_impl_witness.924, element0 [symbolic_self] // CHECK:STDOUT: %ptr.235: type = ptr_type %i32 [concrete] @@ -82,8 +82,8 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.type.loc21_33.2: type = facet_type <@Empty, @Empty(constants.%T)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.6f76f1.2)] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: @H.%Empty.type.loc21_33.1 (%Empty.type.6f76f1.2) = name_ref .Self, %.Self.3 [symbolic = %.Self.1 (constants.%.Self.b4b)] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b61)] -// CHECK:STDOUT: %.loc21_41.1: type = converted %.Self.ref, %.Self.as_type [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b61)] +// CHECK:STDOUT: %.Self.as_type.loc21_41.2: type = facet_access_type %.Self.ref [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.4db)] +// CHECK:STDOUT: %.loc21_41.1: type = converted %.Self.ref, %.Self.as_type.loc21_41.2 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.4db)] // CHECK:STDOUT: %.loc21_41.2: @H.%Empty.assoc_type (%Empty.assoc_type.ce4b5a.2) = specific_constant @A.%assoc0, @Empty.WithSelf(constants.%T, constants.%.Self.b4b) [symbolic = %assoc0 (constants.%assoc0.beb632.2)] // CHECK:STDOUT: %A.ref: @H.%Empty.assoc_type (%Empty.assoc_type.ce4b5a.2) = name_ref A, %.loc21_41.2 [symbolic = %assoc0 (constants.%assoc0.beb632.2)] // CHECK:STDOUT: %impl.elem0.loc21_41.2: type = impl_witness_access constants.%Empty.lookup_impl_witness.177, element0 [symbolic = %impl.elem0.loc21_41.1 (constants.%impl.elem0.de5)] @@ -108,7 +108,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.type.loc21_33.1: type = facet_type <@Empty, @Empty(%T.loc21_7.1)> [symbolic = %Empty.type.loc21_33.1 (constants.%Empty.type.6f76f1.2)] // CHECK:STDOUT: // CHECK:STDOUT: %require_complete.loc21_41: = require_complete_type %Empty.type.loc21_33.1 [symbolic = %require_complete.loc21_41 (constants.%require_complete.8eb)] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.1 [symbolic = %.Self.binding.as_type (constants.%.Self.binding.as_type.b61)] +// CHECK:STDOUT: %.Self.as_type.loc21_41.1: type = facet_access_type %.Self.1 [symbolic = %.Self.as_type.loc21_41.1 (constants.%.Self.as_type.4db)] // CHECK:STDOUT: %Empty.assoc_type: type = assoc_entity_type @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.assoc_type (constants.%Empty.assoc_type.ce4b5a.2)] // CHECK:STDOUT: %assoc0: @H.%Empty.assoc_type (%Empty.assoc_type.ce4b5a.2) = assoc_entity element0, @Empty.WithSelf.%A [symbolic = %assoc0 (constants.%assoc0.beb632.2)] // CHECK:STDOUT: %Empty.lookup_impl_witness: = lookup_impl_witness %.Self.1, @Empty, @Empty(%T.loc21_7.1) [symbolic = %Empty.lookup_impl_witness (constants.%Empty.lookup_impl_witness.177)] @@ -132,7 +132,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.6f76f1.2 // CHECK:STDOUT: %.Self.1 => constants.%.Self.b4b // CHECK:STDOUT: %require_complete.loc21_41 => constants.%require_complete.8eb -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.b61 +// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.4db // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.ce4b5a.2 // CHECK:STDOUT: %assoc0 => constants.%assoc0.beb632.2 // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.177 @@ -148,7 +148,7 @@ fn G(U: Empty(i32) where .A = i32*) { // CHECK:STDOUT: %Empty.type.loc21_33.1 => constants.%Empty.type.4fb // CHECK:STDOUT: %.Self.1 => constants.%.Self.ec6 // CHECK:STDOUT: %require_complete.loc21_41 => constants.%complete_type.ba8 -// CHECK:STDOUT: %.Self.binding.as_type => constants.%.Self.binding.as_type.63c +// CHECK:STDOUT: %.Self.as_type.loc21_41.1 => constants.%.Self.as_type.b09 // CHECK:STDOUT: %Empty.assoc_type => constants.%Empty.assoc_type.623 // CHECK:STDOUT: %assoc0 => constants.%assoc0.edc // CHECK:STDOUT: %Empty.lookup_impl_witness => constants.%Empty.lookup_impl_witness.924 diff --git a/toolchain/check/testdata/where_expr/equal_rewrite.carbon b/toolchain/check/testdata/where_expr/equal_rewrite.carbon index e15adafa2c52..c9b83440d7b4 100644 --- a/toolchain/check/testdata/where_expr/equal_rewrite.carbon +++ b/toolchain/check/testdata/where_expr/equal_rewrite.carbon @@ -228,7 +228,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %N.assoc_type: type = assoc_entity_type @N [concrete] // CHECK:STDOUT: %assoc0: %N.assoc_type = assoc_entity element0, @N.WithSelf.%P [concrete] // CHECK:STDOUT: %.Self.245: %N.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.245 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.245 [symbolic_self] // CHECK:STDOUT: %N.lookup_impl_witness: = lookup_impl_witness %.Self.245, @N [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %N.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete] @@ -249,8 +249,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %N.ref: type = name_ref N, file.%N.decl [concrete = constants.%N.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %N.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.245] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_22: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %P.ref: %N.assoc_type = name_ref P, @P.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%N.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc9_28.1: %empty_struct_type = struct_literal () [concrete = constants.%empty_struct] @@ -283,7 +283,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc1: %A.assoc_type = assoc_entity element1, @A.WithSelf.%C [concrete] // CHECK:STDOUT: %.Self.091: %A.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.091 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.091 [symbolic_self] // CHECK:STDOUT: %A.lookup_impl_witness: = lookup_impl_witness %.Self.091, @A [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %A.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %A_where.type.f51: type = facet_type <@A where %impl.elem0 = bool> [concrete] @@ -305,8 +305,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %A.ref: type = name_ref A, file.%A.decl [concrete = constants.%A.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_31: %A.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.091] -// CHECK:STDOUT: %.Self.as_type.loc10_31: type = facet_access_type %.Self.ref.loc10_31 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_31: type = converted %.Self.ref.loc10_31, %.Self.as_type.loc10_31 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_31: type = facet_access_type %.Self.ref.loc10_31 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_31: type = converted %.Self.ref.loc10_31, %.Self.as_type.loc10_31 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %B.ref: %A.assoc_type = name_ref B, @B.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%A.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_36: type = type_literal bool [concrete = bool] @@ -316,8 +316,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_48: %A.type = name_ref .Self, %.Self.3 [symbolic_self = constants.%.Self.091] -// CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %C.ref: %A.assoc_type = name_ref C, @C.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%A.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc10_54.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] @@ -348,7 +348,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %E.assoc_type: type = assoc_entity_type @E [concrete] // CHECK:STDOUT: %assoc0: %E.assoc_type = assoc_entity element0, @E.WithSelf.%F [concrete] // CHECK:STDOUT: %.Self.7f5: %E.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.7f5 [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.7f5 [symbolic_self] // CHECK:STDOUT: %E.lookup_impl_witness: = lookup_impl_witness %.Self.7f5, @E [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %E.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -374,8 +374,8 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.7f5] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc9_34: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc9_34: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] @@ -394,14 +394,14 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %E.ref: type = name_ref E, file.%E.decl [concrete = constants.%E.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc11_32: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.7f5] -// CHECK:STDOUT: %.Self.as_type.loc11_32: type = facet_access_type %.Self.ref.loc11_32 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_32: type = converted %.Self.ref.loc11_32, %.Self.as_type.loc11_32 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11_32: type = facet_access_type %.Self.ref.loc11_32 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_32: type = converted %.Self.ref.loc11_32, %.Self.as_type.loc11_32 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref.loc11_32: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11_32: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %i32.loc11_37: type = type_literal constants.%i32 [concrete = constants.%i32] // CHECK:STDOUT: %.Self.ref.loc11_45: %E.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.7f5] -// CHECK:STDOUT: %.Self.as_type.loc11_45: type = facet_access_type %.Self.ref.loc11_45 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc11_45: type = converted %.Self.ref.loc11_45, %.Self.as_type.loc11_45 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc11_45: type = facet_access_type %.Self.ref.loc11_45 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc11_45: type = converted %.Self.ref.loc11_45, %.Self.as_type.loc11_45 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %F.ref.loc11_45: %E.assoc_type = name_ref F, @F.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0.loc11_45: type = impl_witness_access constants.%E.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %impl.elem0.subst: type = impl_witness_access_substituted %impl.elem0.loc11_45, %i32.loc11_37 [concrete = constants.%i32] @@ -475,7 +475,7 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %assoc1: %J.assoc_type = assoc_entity element1, @J.WithSelf.%L [concrete] // CHECK:STDOUT: %.Self.2fa: %J.type = symbolic_binding .Self [symbolic_self] // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self.2fa [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.2fa [symbolic_self] // CHECK:STDOUT: %J.lookup_impl_witness: = lookup_impl_witness %.Self.2fa, @J [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %J.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete] @@ -499,15 +499,15 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc10_36: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type.loc10_36: type = facet_access_type %.Self.ref.loc10_36 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_36: type = converted %.Self.ref.loc10_36, %.Self.as_type.loc10_36 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_36: type = facet_access_type %.Self.ref.loc10_36 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_36: type = converted %.Self.ref.loc10_36, %.Self.as_type.loc10_36 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc10_42.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc10_42.2: type = converted %.loc10_42.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %.Self.ref.loc10_48: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc10_48: type = facet_access_type %.Self.ref.loc10_48 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc10_48: type = converted %.Self.ref.loc10_48, %.Self.as_type.loc10_48 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%J.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc10_53: type = type_literal bool [concrete = bool] @@ -527,14 +527,14 @@ let K: (E where .F = .Self.G) = bool; // CHECK:STDOUT: %J.ref: type = name_ref J, file.%J.decl [concrete = constants.%J.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref.loc12_25: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type.loc12_25: type = facet_access_type %.Self.ref.loc12_25 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc12_25: type = converted %.Self.ref.loc12_25, %.Self.as_type.loc12_25 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc12_25: type = facet_access_type %.Self.ref.loc12_25 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc12_25: type = converted %.Self.ref.loc12_25, %.Self.as_type.loc12_25 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %L.ref: %J.assoc_type = name_ref L, @L.%assoc1 [concrete = constants.%assoc1] // CHECK:STDOUT: %impl.elem1: type = impl_witness_access constants.%J.lookup_impl_witness, element1 [symbolic_self = constants.%impl.elem1] // CHECK:STDOUT: %.loc12_30: type = type_literal bool [concrete = bool] // CHECK:STDOUT: %.Self.ref.loc12_39: %J.type = name_ref .Self, %.Self.2 [symbolic_self = constants.%.Self.2fa] -// CHECK:STDOUT: %.Self.as_type.loc12_39: type = facet_access_type %.Self.ref.loc12_39 [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc12_39: type = converted %.Self.ref.loc12_39, %.Self.as_type.loc12_39 [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type.loc12_39: type = facet_access_type %.Self.ref.loc12_39 [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc12_39: type = converted %.Self.ref.loc12_39, %.Self.as_type.loc12_39 [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %K.ref: %J.assoc_type = name_ref K, @K.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%J.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %.loc12_45.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple] diff --git a/toolchain/check/testdata/where_expr/non_generic.carbon b/toolchain/check/testdata/where_expr/non_generic.carbon index 7a77f02e830a..9f620b7dd313 100644 --- a/toolchain/check/testdata/where_expr/non_generic.carbon +++ b/toolchain/check/testdata/where_expr/non_generic.carbon @@ -24,7 +24,7 @@ fn NotGenericF(unused U: I where .T == i32) {} // CHECK:STDOUT: %I.assoc_type: type = assoc_entity_type @I [concrete] // CHECK:STDOUT: %assoc0: %I.assoc_type = assoc_entity element0, @I.WithSelf.%T [concrete] // CHECK:STDOUT: %.Self: %I.type = symbolic_binding .Self [symbolic_self] -// CHECK:STDOUT: %.Self.binding.as_type: type = symbolic_binding_type .Self, %.Self [symbolic_self] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self [symbolic_self] // CHECK:STDOUT: %I.lookup_impl_witness: = lookup_impl_witness %.Self, @I [symbolic_self] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access %I.lookup_impl_witness, element0 [symbolic_self] // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete] @@ -45,8 +45,8 @@ fn NotGenericF(unused U: I where .T == i32) {} // CHECK:STDOUT: %I.ref: type = name_ref I, file.%I.decl [concrete = constants.%I.type] // CHECK:STDOUT: // CHECK:STDOUT: %.Self.ref: %I.type = name_ref .Self, %.Self [symbolic_self = constants.%.Self] -// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.binding.as_type] -// CHECK:STDOUT: %.loc17_34: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.binding.as_type] +// CHECK:STDOUT: %.Self.as_type: type = facet_access_type %.Self.ref [symbolic_self = constants.%.Self.as_type] +// CHECK:STDOUT: %.loc17_34: type = converted %.Self.ref, %.Self.as_type [symbolic_self = constants.%.Self.as_type] // CHECK:STDOUT: %T.ref: %I.assoc_type = name_ref T, @T.%assoc0 [concrete = constants.%assoc0] // CHECK:STDOUT: %impl.elem0: type = impl_witness_access constants.%I.lookup_impl_witness, element0 [symbolic_self = constants.%impl.elem0] // CHECK:STDOUT: %i32: type = type_literal constants.%i32 [concrete = constants.%i32] diff --git a/toolchain/check/type.cpp b/toolchain/check/type.cpp index ebd61262f3f9..a2615e19f94c 100644 --- a/toolchain/check/type.cpp +++ b/toolchain/check/type.cpp @@ -282,12 +282,6 @@ auto GetCanonicalFacetOrTypeValue(Context& context, SemIR::InstId inst_id) return access->facet_value_inst_id; } - if (auto access = - context.insts().TryGetAs(const_inst_id)) { - // TODO: Look in ScopeStack with the entity_name_id to find the facet value. - return access->facet_value_inst_id; - } - return const_inst_id; } diff --git a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon index 0881cf7c65fc..3c7f7d57fc97 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_debug.carbon @@ -120,7 +120,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 5, scope: !16) // CHECK:STDOUT: !24 = !DILocation(line: 299, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !26, line: 299, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !26, line: 299, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !7, !7} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon index 16220b4f6773..8c9738179277 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_default.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_default.carbon @@ -120,7 +120,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 19, column: 5, scope: !16) // CHECK:STDOUT: !24 = !DILocation(line: 299, column: 3, scope: !25, inlinedAt: !32) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !26, line: 299, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !26, line: 299, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !29) // CHECK:STDOUT: !26 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !27 = !DISubroutineType(types: !28) // CHECK:STDOUT: !28 = !{null, !7, !7} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon index cb141d0c39e3..eddd9a6af92a 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_none.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_none.carbon @@ -94,13 +94,13 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 1), !dbg !38 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 1), !dbg !38 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 %other) #0 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !46 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 %other) #0 !dbg !40 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !46 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 @@ -108,7 +108,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: noinline nounwind optnone -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !48 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !48 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } @@ -164,7 +164,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 365, column: 5, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 363, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !35, line: 299, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !35, line: 299, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !41 = !DISubroutineType(types: !42) // CHECK:STDOUT: !42 = !{null, !7, !7} // CHECK:STDOUT: !43 = !{!44, !45} @@ -172,7 +172,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 4294967295, scope: !40) // CHECK:STDOUT: !47 = !DILocation(line: 299, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !35, line: 62, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !35, line: 62, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !49 = !DISubroutineType(types: !50) // CHECK:STDOUT: !50 = !{!7, !7} // CHECK:STDOUT: !51 = !{!52} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon index 4d66107d5045..e0ea4a27fd6a 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_size.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_size.carbon @@ -93,13 +93,13 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !34 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 1), !dbg !38 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 1), !dbg !38 // CHECK:STDOUT: ret void, !dbg !39 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 %other) #2 !dbg !40 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !46 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 %other) #2 !dbg !40 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !46 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !47 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !47 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !47 @@ -107,7 +107,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: minsize nounwind optsize -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !48 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !48 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } @@ -164,7 +164,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !34, type: !7) // CHECK:STDOUT: !38 = !DILocation(line: 365, column: 5, scope: !34) // CHECK:STDOUT: !39 = !DILocation(line: 363, column: 3, scope: !34) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !35, line: 299, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !35, line: 299, type: !41, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !43) // CHECK:STDOUT: !41 = !DISubroutineType(types: !42) // CHECK:STDOUT: !42 = !{null, !7, !7} // CHECK:STDOUT: !43 = !{!44, !45} @@ -172,7 +172,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !45 = !DILocalVariable(arg: 2, scope: !40, type: !7) // CHECK:STDOUT: !46 = !DILocation(line: 4294967295, scope: !40) // CHECK:STDOUT: !47 = !DILocation(line: 299, column: 3, scope: !40) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !35, line: 62, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !35, line: 62, type: !49, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !49 = !DISubroutineType(types: !50) // CHECK:STDOUT: !50 = !{!7, !7} // CHECK:STDOUT: !51 = !{!52} diff --git a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon index c39efda96481..3a8cf47b6667 100644 --- a/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon +++ b/toolchain/driver/testdata/compile/optimize/optimize_speed.carbon @@ -135,7 +135,7 @@ fn VectorizedWithOptSpeed(a: array(i32, 65536)*) { // CHECK:STDOUT: !21 = !DILocalVariable(arg: 1, scope: !16, type: !19) // CHECK:STDOUT: !22 = !DILocation(line: 18, column: 9, scope: !16) // CHECK:STDOUT: !23 = !DILocation(line: 299, column: 3, scope: !24, inlinedAt: !31) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !25, line: 299, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !25, line: 299, type: !26, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !28) // CHECK:STDOUT: !25 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !26 = !DISubroutineType(types: !27) // CHECK:STDOUT: !27 = !{null, !7, !7} diff --git a/toolchain/lower/testdata/array/iterate.carbon b/toolchain/lower/testdata/array/iterate.carbon index 257ad89a5c2b..89f1fb579fd8 100644 --- a/toolchain/lower/testdata/array/iterate.carbon +++ b/toolchain/lower/testdata/array/iterate.carbon @@ -40,24 +40,24 @@ fn F() { // CHECK:STDOUT: %.loc16_43.13.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 3, !dbg !7 // CHECK:STDOUT: %.loc16_43.16.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 4, !dbg !7 // CHECK:STDOUT: %.loc16_43.19.array.index = getelementptr inbounds [6 x i32], ptr %.loc16_43.3.temp, i32 0, i64 5, !dbg !7 -// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16"(ptr @array.loc16_43.24), !dbg !8 +// CHECK:STDOUT: %array_type.as.Iterate.impl.NewCursor.call = call i32 @"_CNewCursor.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16"(ptr @array.loc16_43.24), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 // CHECK:STDOUT: store i32 %array_type.as.Iterate.impl.NewCursor.call, ptr %var, align 4, !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc17_19.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16"(ptr %.loc17_19.1.temp, ptr @array.loc16_43.24, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.b5e6acce74484d77(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16"(ptr %.loc17_19.1.temp, ptr @array.loc16_43.24, ptr %var), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.5fc5d1359ef183dd(ptr %.loc17_19.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.b5e6acce74484d77(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.5fc5d1359ef183dd(ptr %.loc17_19.1.temp), !dbg !8 // CHECK:STDOUT: call void @_CG.Main(i32 %Optional.Get.call), !dbg !9 // CHECK:STDOUT: br label %for.next, !dbg !10 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next -// CHECK:STDOUT: call void @"_COp.50af35a8e2c36b7d:core.Destroy.Core"(ptr %.loc17_19.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.d827899e8900e733:core.Destroy.Core"(ptr %.loc17_19.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %var), !dbg !8 // CHECK:STDOUT: call void @"_COp.11a1b64e4863afd8:core.Destroy.Core"(ptr @array), !dbg !7 // CHECK:STDOUT: ret void, !dbg !11 @@ -88,7 +88,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.50af35a8e2c36b7d:core.Destroy.Core"(ptr %self) #0 !dbg !34 { +// CHECK:STDOUT: define weak_odr void @"_COp.d827899e8900e733:core.Destroy.Core"(ptr %self) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } @@ -103,12 +103,12 @@ fn F() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16"(ptr %self) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CNewCursor.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16"(ptr %self) #0 !dbg !42 { // CHECK:STDOUT: ret i32 0, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !49 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16"(ptr sret(<{ i32, i1 }>) %return, ptr %self, ptr %cursor) #0 !dbg !49 { // CHECK:STDOUT: %1 = load i32, ptr %cursor, align 4, !dbg !55 // CHECK:STDOUT: %2 = icmp slt i32 %1, 6, !dbg !55 // CHECK:STDOUT: br i1 %2, label %3, label %7, !dbg !56 @@ -119,46 +119,46 @@ fn F() { // CHECK:STDOUT: %5 = sub i32 %4, 1, !dbg !58 // CHECK:STDOUT: %array.index = getelementptr inbounds [6 x i32], ptr %self, i32 0, i32 %5, !dbg !59 // CHECK:STDOUT: %6 = load i32, ptr %array.index, align 4, !dbg !59 -// CHECK:STDOUT: call void @_CSome.Optional.Core.b5e6acce74484d77(ptr %return, i32 %6), !dbg !60 +// CHECK:STDOUT: call void @_CSome.Optional.Core.5fc5d1359ef183dd(ptr %return, i32 %6), !dbg !60 // CHECK:STDOUT: ret void, !dbg !61 // CHECK:STDOUT: // CHECK:STDOUT: 7: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.b5e6acce74484d77(ptr %return), !dbg !62 +// CHECK:STDOUT: call void @_CNone.Optional.Core.5fc5d1359ef183dd(ptr %return), !dbg !62 // CHECK:STDOUT: ret void, !dbg !63 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.b5e6acce74484d77(ptr %self) #0 !dbg !64 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.5fc5d1359ef183dd(ptr %self) #0 !dbg !64 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %self), !dbg !70 // CHECK:STDOUT: ret i1 %1, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.b5e6acce74484d77(ptr %self) #0 !dbg !72 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %self), !dbg !75 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.5fc5d1359ef183dd(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %self), !dbg !75 // CHECK:STDOUT: ret i32 %1, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !77 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.e2da7149b7fcf782.Core.23ea0ff7335d4fdc"(ptr %self, i32 1), !dbg !81 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.3fed4bf7a4851faa.Core.713f5c05f7ee0bd5"(ptr %self, i32 1), !dbg !81 // CHECK:STDOUT: ret void, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.b5e6acce74484d77(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !83 { -// CHECK:STDOUT: call void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return, i32 %value), !dbg !88 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.5fc5d1359ef183dd(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !83 { +// CHECK:STDOUT: call void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return, i32 %value), !dbg !88 // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.b5e6acce74484d77(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !90 { -// CHECK:STDOUT: call void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return), !dbg !93 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.5fc5d1359ef183dd(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !90 { +// CHECK:STDOUT: call void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return), !dbg !93 // CHECK:STDOUT: ret void, !dbg !94 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %value) #0 !dbg !95 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %value) #0 !dbg !95 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !98 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !98 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !98 @@ -166,15 +166,15 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %value) #0 !dbg !100 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %value) #0 !dbg !100 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !103 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !103 // CHECK:STDOUT: ret i32 %1, !dbg !104 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.e2da7149b7fcf782.Core.23ea0ff7335d4fdc"(ptr %self, i32 %other) #2 !dbg !105 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.93210ed0b06d6c25:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab"(i32 %other), !dbg !111 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.3fed4bf7a4851faa.Core.713f5c05f7ee0bd5"(ptr %self, i32 %other) #2 !dbg !105 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.0b8d6a4f60e9338d:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab"(i32 %other), !dbg !111 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !112 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !112 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !112 @@ -182,7 +182,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !113 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !113 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !116 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !116 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !117 @@ -191,14 +191,14 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !119 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !119 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !120 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !120 // CHECK:STDOUT: ret void, !dbg !121 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.93210ed0b06d6c25:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab"(i32 %self) #0 !dbg !122 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.0b8d6a4f60e9338d:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab"(i32 %self) #0 !dbg !122 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !127 // CHECK:STDOUT: ret i32 %1, !dbg !128 // CHECK:STDOUT: } @@ -252,7 +252,7 @@ fn F() { // CHECK:STDOUT: !31 = !{!32} // CHECK:STDOUT: !32 = !DILocalVariable(arg: 1, scope: !30, type: !26) // CHECK:STDOUT: !33 = !DILocation(line: 17, column: 7, scope: !30) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.50af35a8e2c36b7d:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d827899e8900e733:core.Destroy.Core", scope: null, file: !3, line: 17, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !35) // CHECK:STDOUT: !35 = !{!36} // CHECK:STDOUT: !36 = !DILocalVariable(arg: 1, scope: !34, type: !26) // CHECK:STDOUT: !37 = !DILocation(line: 17, column: 7, scope: !34) @@ -260,14 +260,14 @@ fn F() { // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !38, type: !26) // CHECK:STDOUT: !41 = !DILocation(line: 16, column: 26, scope: !38) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16", scope: null, file: !43, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16", scope: null, file: !43, line: 23, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !46) // CHECK:STDOUT: !43 = !DIFile(filename: "{{.*}}/prelude/iterate.carbon", directory: "") // CHECK:STDOUT: !44 = !DISubroutineType(types: !45) // CHECK:STDOUT: !45 = !{!15, !26} // CHECK:STDOUT: !46 = !{!47} // CHECK:STDOUT: !47 = !DILocalVariable(arg: 1, scope: !42, type: !26) // CHECK:STDOUT: !48 = !DILocation(line: 23, column: 46, scope: !42) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.7711e6f0e1563534:Iterate.Core.355bb079bb00aa16", scope: null, file: !43, line: 24, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.f781f260c2ccdb68:Iterate.Core.355bb079bb00aa16", scope: null, file: !43, line: 24, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !52) // CHECK:STDOUT: !50 = !DISubroutineType(types: !51) // CHECK:STDOUT: !51 = !{!26, !26, !26} // CHECK:STDOUT: !52 = !{!53, !54} @@ -282,7 +282,7 @@ fn F() { // CHECK:STDOUT: !61 = !DILocation(line: 27, column: 7, scope: !49) // CHECK:STDOUT: !62 = !DILocation(line: 29, column: 14, scope: !49) // CHECK:STDOUT: !63 = !DILocation(line: 29, column: 7, scope: !49) -// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.b5e6acce74484d77", scope: null, file: !65, line: 33, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !64 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.5fc5d1359ef183dd", scope: null, file: !65, line: 33, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !65 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !66 = !DISubroutineType(types: !67) // CHECK:STDOUT: !67 = !{!26, !26} @@ -290,7 +290,7 @@ fn F() { // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !64, type: !26) // CHECK:STDOUT: !70 = !DILocation(line: 34, column: 12, scope: !64) // CHECK:STDOUT: !71 = !DILocation(line: 34, column: 5, scope: !64) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.b5e6acce74484d77", scope: null, file: !65, line: 36, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.5fc5d1359ef183dd", scope: null, file: !65, line: 36, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !73) // CHECK:STDOUT: !73 = !{!74} // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !26) // CHECK:STDOUT: !75 = !DILocation(line: 37, column: 12, scope: !72) @@ -301,29 +301,29 @@ fn F() { // CHECK:STDOUT: !80 = !DILocalVariable(arg: 1, scope: !77, type: !15) // CHECK:STDOUT: !81 = !DILocation(line: 365, column: 5, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 363, column: 3, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.b5e6acce74484d77", scope: null, file: !65, line: 30, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.5fc5d1359ef183dd", scope: null, file: !65, line: 30, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) // CHECK:STDOUT: !84 = !DISubroutineType(types: !85) // CHECK:STDOUT: !85 = !{!26, !15} // CHECK:STDOUT: !86 = !{!87} // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !83, type: !15) // CHECK:STDOUT: !88 = !DILocation(line: 31, column: 12, scope: !83) // CHECK:STDOUT: !89 = !DILocation(line: 31, column: 5, scope: !83) -// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.b5e6acce74484d77", scope: null, file: !65, line: 27, type: !91, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.5fc5d1359ef183dd", scope: null, file: !65, line: 27, type: !91, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !91 = !DISubroutineType(types: !92) // CHECK:STDOUT: !92 = !{!26} // CHECK:STDOUT: !93 = !DILocation(line: 28, column: 12, scope: !90) // CHECK:STDOUT: !94 = !DILocation(line: 28, column: 5, scope: !90) -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 132, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 132, type: !66, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) // CHECK:STDOUT: !96 = !{!97} // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !95, type: !26) // CHECK:STDOUT: !98 = !DILocation(line: 133, column: 12, scope: !95) // CHECK:STDOUT: !99 = !DILocation(line: 133, column: 5, scope: !95) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 135, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 135, type: !44, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !101) // CHECK:STDOUT: !101 = !{!102} // CHECK:STDOUT: !102 = !DILocalVariable(arg: 1, scope: !100, type: !26) // CHECK:STDOUT: !103 = !DILocation(line: 136, column: 12, scope: !100) // CHECK:STDOUT: !104 = !DILocation(line: 136, column: 5, scope: !100) -// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.e2da7149b7fcf782.Core.23ea0ff7335d4fdc", scope: null, file: !78, line: 299, type: !106, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) +// CHECK:STDOUT: !105 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.3fed4bf7a4851faa.Core.713f5c05f7ee0bd5", scope: null, file: !78, line: 299, type: !106, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !108) // CHECK:STDOUT: !106 = !DISubroutineType(types: !107) // CHECK:STDOUT: !107 = !{null, !15, !15} // CHECK:STDOUT: !108 = !{!109, !110} @@ -331,16 +331,16 @@ fn F() { // CHECK:STDOUT: !110 = !DILocalVariable(arg: 2, scope: !105, type: !15) // CHECK:STDOUT: !111 = !DILocation(line: 4294967295, scope: !105) // CHECK:STDOUT: !112 = !DILocation(line: 299, column: 3, scope: !105) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 122, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 122, type: !84, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) // CHECK:STDOUT: !114 = !{!115} // CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !15) // CHECK:STDOUT: !116 = !DILocation(line: 128, column: 5, scope: !113) // CHECK:STDOUT: !117 = !DILocation(line: 129, column: 5, scope: !113) // CHECK:STDOUT: !118 = !DILocation(line: 130, column: 5, scope: !113) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "None", linkageName: "_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 116, type: !91, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "None", linkageName: "_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !65, line: 116, type: !91, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !120 = !DILocation(line: 119, column: 5, scope: !119) // CHECK:STDOUT: !121 = !DILocation(line: 120, column: 5, scope: !119) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.93210ed0b06d6c25:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab", scope: null, file: !78, line: 62, type: !123, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.0b8d6a4f60e9338d:ImplicitAs.11da3bb3c3dce533.Core.5da21217b3d19eab", scope: null, file: !78, line: 62, type: !123, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) // CHECK:STDOUT: !123 = !DISubroutineType(types: !124) // CHECK:STDOUT: !124 = !{!15, !15} // CHECK:STDOUT: !125 = !{!126} diff --git a/toolchain/lower/testdata/class/generic.carbon b/toolchain/lower/testdata/class/generic.carbon index 7aa9d7eca7fb..9072340b408e 100644 --- a/toolchain/lower/testdata/class/generic.carbon +++ b/toolchain/lower/testdata/class/generic.carbon @@ -179,7 +179,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define void @_CTuples.Main(ptr sret({ { i32, i32 }, { i32, i32 } }) %return) #0 !dbg !13 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CMake.Main.7af4aab1086ddeeb(ptr %return, ptr @tuple.21c.loc22_28.6, ptr @tuple.21c.loc22_28.6), !dbg !14 +// CHECK:STDOUT: call void @_CMake.Main.f042d77b431c4173(ptr %return, ptr @tuple.21c.loc22_28.6, ptr @tuple.21c.loc22_28.6), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -202,17 +202,17 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.7af4aab1086ddeeb(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !28 { +// CHECK:STDOUT: define linkonce_odr void @_CMake.Main.f042d77b431c4173(ptr sret({ { i32, i32 }, { i32, i32 } }) %return, ptr %x, ptr %y) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc10_25.2.x = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 0, !dbg !34 -// CHECK:STDOUT: call void @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630"(ptr %.loc10_25.2.x, ptr %x), !dbg !35 +// CHECK:STDOUT: call void @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630"(ptr %.loc10_25.2.x, ptr %x), !dbg !35 // CHECK:STDOUT: %.loc10_25.4.y = getelementptr inbounds nuw { { i32, i32 }, { i32, i32 } }, ptr %return, i32 0, i32 1, !dbg !34 -// CHECK:STDOUT: call void @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630"(ptr %.loc10_25.4.y, ptr %y), !dbg !36 +// CHECK:STDOUT: call void @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630"(ptr %.loc10_25.4.y, ptr %y), !dbg !36 // CHECK:STDOUT: ret void, !dbg !37 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !38 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !38 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !44 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !44 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !45 @@ -225,7 +225,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630", { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } // CHECK:STDOUT: @@ -260,7 +260,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.335f6bfc3bd91486", scope: null, file: !3, line: 9, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !26 = !DILocation(line: 10, column: 10, scope: !25) // CHECK:STDOUT: !27 = !DILocation(line: 10, column: 3, scope: !25) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.7af4aab1086ddeeb", scope: null, file: !3, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "Make", linkageName: "_CMake.Main.f042d77b431c4173", scope: null, file: !3, line: 9, type: !29, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !31) // CHECK:STDOUT: !29 = !DISubroutineType(types: !30) // CHECK:STDOUT: !30 = !{!7, !7, !7} // CHECK:STDOUT: !31 = !{!32, !33} @@ -270,7 +270,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !35 = !DILocation(line: 10, column: 16, scope: !28) // CHECK:STDOUT: !36 = !DILocation(line: 10, column: 24, scope: !28) // CHECK:STDOUT: !37 = !DILocation(line: 10, column: 3, scope: !28) -// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630", scope: null, file: !39, line: 48, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !38 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630", scope: null, file: !39, line: 48, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !39 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !40 = !DISubroutineType(types: !41) // CHECK:STDOUT: !41 = !{!7, !7} @@ -285,7 +285,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: // CHECK:STDOUT: @C.val.310.loc16_3 = internal constant { i1, i32 } { i1 true, i32 0 } // CHECK:STDOUT: @C.val.8d5.loc26_3 = internal constant { i1, {} } { i1 true, {} zeroinitializer } -// CHECK:STDOUT: @C.val.76f.loc31_3 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } +// CHECK:STDOUT: @C.val.6c4.loc31_3 = internal constant { i1, { i32, i32, i32 } } { i1 true, { i32, i32, i32 } { i32 1, i32 2, i32 3 } } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i1 @_CAccessBool.Main() #0 !dbg !4 { @@ -366,9 +366,9 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 0, !dbg !54 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 1, !dbg !54 // CHECK:STDOUT: %tuple.elem2.tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %.loc31_57.4.w, i32 0, i32 2, !dbg !54 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.76f.loc31_3, i64 16, i1 false), !dbg !52 -// CHECK:STDOUT: call void @_CGetT.C.Main.3ae0849a77989a11(ptr %return, ptr %c.var), !dbg !55 -// CHECK:STDOUT: call void @"_COp.ec83a704577f828e:core.Destroy.Core"(ptr %c.var), !dbg !52 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 4 %c.var, ptr align 4 @C.val.6c4.loc31_3, i64 16, i1 false), !dbg !52 +// CHECK:STDOUT: call void @_CGetT.C.Main.645ccd6a18897280(ptr %return, ptr %c.var), !dbg !55 +// CHECK:STDOUT: call void @"_COp.ed5318d65a432e64:core.Destroy.Core"(ptr %c.var), !dbg !52 // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -385,7 +385,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.ec83a704577f828e:core.Destroy.Core"(ptr %self) #0 !dbg !65 { +// CHECK:STDOUT: define weak_odr void @"_COp.ed5318d65a432e64:core.Destroy.Core"(ptr %self) #0 !dbg !65 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !68 // CHECK:STDOUT: } @@ -421,15 +421,15 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.3ae0849a77989a11(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !88 { +// CHECK:STDOUT: define linkonce_odr void @_CGetT.C.Main.645ccd6a18897280(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !88 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc9_16.1.w = getelementptr inbounds nuw { i1, { i32, i32, i32 } }, ptr %self, i32 0, i32 1, !dbg !91 -// CHECK:STDOUT: call void @"_COp.a02bcb1b1383357d:Copy.Core.975a30a52004fa2c"(ptr %return, ptr %.loc9_16.1.w), !dbg !91 +// CHECK:STDOUT: call void @"_COp.69353d7f5c47b8f0:Copy.Core.975a30a52004fa2c"(ptr %return, ptr %.loc9_16.1.w), !dbg !91 // CHECK:STDOUT: ret void, !dbg !92 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.a02bcb1b1383357d:Copy.Core.975a30a52004fa2c"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !93 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.69353d7f5c47b8f0:Copy.Core.975a30a52004fa2c"(ptr sret({ i32, i32, i32 }) %return, ptr %self) #0 !dbg !93 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32, i32 }, ptr %self, i32 0, i32 0, !dbg !97 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !97 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32, i32 }, ptr %return, i32 0, i32 0, !dbg !98 @@ -521,7 +521,7 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !7) // CHECK:STDOUT: !64 = !DILocation(line: 31, column: 3, scope: !61) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ec83a704577f828e:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "Op", linkageName: "_COp.ed5318d65a432e64:core.Destroy.Core", scope: null, file: !3, line: 31, type: !20, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !66) // CHECK:STDOUT: !66 = !{!67} // CHECK:STDOUT: !67 = !DILocalVariable(arg: 1, scope: !65, type: !7) // CHECK:STDOUT: !68 = !DILocation(line: 31, column: 3, scope: !65) @@ -544,12 +544,12 @@ fn AccessTuple() -> (i32, i32, i32) { // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !7) // CHECK:STDOUT: !86 = !DILocation(line: 9, column: 12, scope: !83) // CHECK:STDOUT: !87 = !DILocation(line: 9, column: 5, scope: !83) -// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.3ae0849a77989a11", scope: null, file: !3, line: 8, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) +// CHECK:STDOUT: !88 = distinct !DISubprogram(name: "GetT", linkageName: "_CGetT.C.Main.645ccd6a18897280", scope: null, file: !3, line: 8, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !89) // CHECK:STDOUT: !89 = !{!90} // CHECK:STDOUT: !90 = !DILocalVariable(arg: 1, scope: !88, type: !7) // CHECK:STDOUT: !91 = !DILocation(line: 9, column: 12, scope: !88) // CHECK:STDOUT: !92 = !DILocation(line: 9, column: 5, scope: !88) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a02bcb1b1383357d:Copy.Core.975a30a52004fa2c", scope: null, file: !94, line: 54, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "Op", linkageName: "_COp.69353d7f5c47b8f0:Copy.Core.975a30a52004fa2c", scope: null, file: !94, line: 54, type: !70, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) // CHECK:STDOUT: !94 = !DIFile(filename: "min_prelude/parts/copy.carbon", directory: "") // CHECK:STDOUT: !95 = !{!96} // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !93, type: !7) diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index b9b61e6dd1f7..43c699a527f5 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -48,20 +48,20 @@ fn For() { // CHECK:STDOUT: %.loc29_33.8.temp = alloca { i32, i32 }, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %r.var), !dbg !7 // CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !7 -// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd"(ptr %r.var), !dbg !8 +// CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d"(ptr %r.var), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %var), !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.6b64456bb8003a40(ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.813c1431bbfbda50(ptr %.loc29_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %n.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc29_33.8.temp), !dbg !8 -// CHECK:STDOUT: call void @_CGet.Optional.Core.6b64456bb8003a40(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @_CGet.Optional.Core.813c1431bbfbda50(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 // CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !8 // CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !8 // CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !8 @@ -73,8 +73,8 @@ fn For() { // CHECK:STDOUT: for.done: ; preds = %for.next // CHECK:STDOUT: call void @"_COp.8e354c83fe88ab86:core.Destroy.Core"(ptr %.loc29_33.8.temp), !dbg !8 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @"_COp.9a6e0f157f6aaaf4:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_COp.a27a6de502cec337:core.Destroy.Core"(ptr %r.var), !dbg !7 +// CHECK:STDOUT: call void @"_COp.bdc0fd9889ba1516:core.Destroy.Core"(ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.13810a7cbf135761:core.Destroy.Core"(ptr %r.var), !dbg !7 // CHECK:STDOUT: ret void, !dbg !12 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -103,19 +103,19 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.27527d1de6170640:core.Destroy.Core"(ptr %self) #0 !dbg !35 { +// CHECK:STDOUT: define weak_odr void @"_COp.0060caedc75bb9e7:core.Destroy.Core"(ptr %self) #0 !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9a6e0f157f6aaaf4:core.Destroy.Core"(ptr %self) #0 !dbg !39 { +// CHECK:STDOUT: define weak_odr void @"_COp.bdc0fd9889ba1516:core.Destroy.Core"(ptr %self) #0 !dbg !39 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !42 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.a27a6de502cec337:core.Destroy.Core"(ptr %self) #0 !dbg !43 { +// CHECK:STDOUT: define weak_odr void @"_COp.13810a7cbf135761:core.Destroy.Core"(ptr %self) #0 !dbg !43 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -127,38 +127,38 @@ fn For() { // CHECK:STDOUT: declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr noalias readonly captures(none), i64, i1 immarg) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd"(ptr %self) #0 !dbg !47 { +// CHECK:STDOUT: define linkonce_odr void @"_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d"(ptr %self) #0 !dbg !47 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !50 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !51 { +// CHECK:STDOUT: define linkonce_odr void @"_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d"(ptr sret(<{ { i32, i32 }, i1 }>) %return, ptr %self, ptr %_) #0 !dbg !51 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: call void @_CNone.Optional.Core.6b64456bb8003a40(ptr %return), !dbg !57 +// CHECK:STDOUT: call void @_CNone.Optional.Core.813c1431bbfbda50(ptr %return), !dbg !57 // CHECK:STDOUT: ret void, !dbg !58 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.6b64456bb8003a40(ptr %self) #0 !dbg !59 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr %self), !dbg !65 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.813c1431bbfbda50(ptr %self) #0 !dbg !59 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr %self), !dbg !65 // CHECK:STDOUT: ret i1 %1, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.6b64456bb8003a40(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !67 { -// CHECK:STDOUT: call void @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr %return, ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr void @_CGet.Optional.Core.813c1431bbfbda50(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: call void @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr %return, ptr %self), !dbg !70 // CHECK:STDOUT: ret void, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.6b64456bb8003a40(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !72 { -// CHECK:STDOUT: call void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr %return), !dbg !75 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.813c1431bbfbda50(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !72 { +// CHECK:STDOUT: call void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr %return), !dbg !75 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr %value) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr %value) #0 !dbg !77 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 1, !dbg !80 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !80 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !80 @@ -166,21 +166,21 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !82 { +// CHECK:STDOUT: define linkonce_odr void @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr sret({ i32, i32 }) %return, ptr %value) #0 !dbg !82 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %value, i32 0, i32 0, !dbg !85 -// CHECK:STDOUT: call void @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630"(ptr %return, ptr %value1), !dbg !85 +// CHECK:STDOUT: call void @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630"(ptr %return, ptr %value1), !dbg !85 // CHECK:STDOUT: ret void, !dbg !86 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !87 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d"(ptr sret(<{ { i32, i32 }, i1 }>) %return) #0 !dbg !87 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ { i32, i32 }, i1 }>, ptr %return, i32 0, i32 1, !dbg !88 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !88 // CHECK:STDOUT: ret void, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !90 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630"(ptr sret({ i32, i32 }) %return, ptr %self) #0 !dbg !90 { // CHECK:STDOUT: %tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %self, i32 0, i32 0, !dbg !94 // CHECK:STDOUT: %tuple.elem.load = load i32, ptr %tuple.elem, align 4, !dbg !94 // CHECK:STDOUT: %tuple.elem1 = getelementptr inbounds nuw { i32, i32 }, ptr %return, i32 0, i32 0, !dbg !95 @@ -237,23 +237,23 @@ fn For() { // CHECK:STDOUT: !32 = !{!33} // CHECK:STDOUT: !33 = !DILocalVariable(arg: 1, scope: !31, type: !23) // CHECK:STDOUT: !34 = !DILocation(line: 29, column: 7, scope: !31) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.27527d1de6170640:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0060caedc75bb9e7:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !36) // CHECK:STDOUT: !36 = !{!37} // CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !23) // CHECK:STDOUT: !38 = !DILocation(line: 29, column: 7, scope: !35) -// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9a6e0f157f6aaaf4:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) +// CHECK:STDOUT: !39 = distinct !DISubprogram(name: "Op", linkageName: "_COp.bdc0fd9889ba1516:core.Destroy.Core", scope: null, file: !3, line: 29, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !40) // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !39, type: !23) // CHECK:STDOUT: !42 = !DILocation(line: 29, column: 7, scope: !39) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a27a6de502cec337:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.13810a7cbf135761:core.Destroy.Core", scope: null, file: !3, line: 27, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !43, type: !23) // CHECK:STDOUT: !46 = !DILocation(line: 27, column: 3, scope: !43) -// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd", scope: null, file: !3, line: 15, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) +// CHECK:STDOUT: !47 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d", scope: null, file: !3, line: 15, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !48) // CHECK:STDOUT: !48 = !{!49} // CHECK:STDOUT: !49 = !DILocalVariable(arg: 1, scope: !47, type: !23) // CHECK:STDOUT: !50 = !DILocation(line: 16, column: 7, scope: !47) -// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.8d745d19e7d6c4bd", scope: null, file: !3, line: 18, type: !52, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) +// CHECK:STDOUT: !51 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.1ccc388edee5a786.Main:Iterate.Core.f9d8b5cd300a034d", scope: null, file: !3, line: 18, type: !52, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) // CHECK:STDOUT: !52 = !DISubroutineType(types: !53) // CHECK:STDOUT: !53 = !{!23, !23, !23} // CHECK:STDOUT: !54 = !{!55, !56} @@ -261,7 +261,7 @@ fn For() { // CHECK:STDOUT: !56 = !DILocalVariable(arg: 2, scope: !51, type: !23) // CHECK:STDOUT: !57 = !DILocation(line: 19, column: 14, scope: !51) // CHECK:STDOUT: !58 = !DILocation(line: 19, column: 7, scope: !51) -// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.6b64456bb8003a40", scope: null, file: !60, line: 33, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) +// CHECK:STDOUT: !59 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.813c1431bbfbda50", scope: null, file: !60, line: 33, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !63) // CHECK:STDOUT: !60 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !61 = !DISubroutineType(types: !62) // CHECK:STDOUT: !62 = !{!23, !23} @@ -269,30 +269,30 @@ fn For() { // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !59, type: !23) // CHECK:STDOUT: !65 = !DILocation(line: 34, column: 12, scope: !59) // CHECK:STDOUT: !66 = !DILocation(line: 34, column: 5, scope: !59) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.6b64456bb8003a40", scope: null, file: !60, line: 36, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.813c1431bbfbda50", scope: null, file: !60, line: 36, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !23) // CHECK:STDOUT: !70 = !DILocation(line: 37, column: 12, scope: !67) // CHECK:STDOUT: !71 = !DILocation(line: 37, column: 5, scope: !67) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.6b64456bb8003a40", scope: null, file: !60, line: 27, type: !73, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.813c1431bbfbda50", scope: null, file: !60, line: 27, type: !73, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !73 = !DISubroutineType(types: !74) // CHECK:STDOUT: !74 = !{!23} // CHECK:STDOUT: !75 = !DILocation(line: 28, column: 12, scope: !72) // CHECK:STDOUT: !76 = !DILocation(line: 28, column: 5, scope: !72) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd", scope: null, file: !60, line: 132, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d", scope: null, file: !60, line: 132, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !23) // CHECK:STDOUT: !80 = !DILocation(line: 133, column: 12, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 133, column: 5, scope: !77) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd", scope: null, file: !60, line: 135, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d", scope: null, file: !60, line: 135, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !83) // CHECK:STDOUT: !83 = !{!84} // CHECK:STDOUT: !84 = !DILocalVariable(arg: 1, scope: !82, type: !23) // CHECK:STDOUT: !85 = !DILocation(line: 136, column: 12, scope: !82) // CHECK:STDOUT: !86 = !DILocation(line: 136, column: 5, scope: !82) -// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "None", linkageName: "_CNone.3e8267224c5dc9c2:OptionalStorage.Core.8d745d19e7d6c4bd", scope: null, file: !60, line: 116, type: !73, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !87 = distinct !DISubprogram(name: "None", linkageName: "_CNone.41c279c2a75ec21d:OptionalStorage.Core.f9d8b5cd300a034d", scope: null, file: !60, line: 116, type: !73, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !88 = !DILocation(line: 119, column: 5, scope: !87) // CHECK:STDOUT: !89 = !DILocation(line: 120, column: 5, scope: !87) -// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.e4daa70d026fdea2:Copy.Core.3e36085cb869f630", scope: null, file: !91, line: 58, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) +// CHECK:STDOUT: !90 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b31b63747b02f3d2:Copy.Core.3e36085cb869f630", scope: null, file: !91, line: 58, type: !61, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !92) // CHECK:STDOUT: !91 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !90, type: !23) diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index 0c7557b61299..6c3c5fb5b3bf 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -49,11 +49,11 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %if.else.loc22, %if.then.loc22, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc20_33.1.temp, ptr %.loc20_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a0986cb4211ec3fb(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.1d1d639653cb3d8f(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a0986cb4211ec3fb(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.1d1d639653cb3d8f(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !9 // CHECK:STDOUT: br i1 %F.call, label %if.then.loc21, label %if.else.loc21, !dbg !10 // CHECK:STDOUT: @@ -72,7 +72,7 @@ fn For() { // CHECK:STDOUT: br label %for.next, !dbg !16 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %if.then.loc21, %for.next -// CHECK:STDOUT: call void @"_COp.fed90f94367ce0d0:core.Destroy.Core"(ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5eaa50c99214837e:core.Destroy.Core"(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %var), !dbg !8 // CHECK:STDOUT: call void @"_COp.4f0cde2dfabc7dc4:core.Destroy.Core"(ptr %.loc20_32.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !17 @@ -105,7 +105,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fed90f94367ce0d0:core.Destroy.Core"(ptr %self) #0 !dbg !41 { +// CHECK:STDOUT: define weak_odr void @"_COp.5eaa50c99214837e:core.Destroy.Core"(ptr %self) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !44 // CHECK:STDOUT: } @@ -147,25 +147,25 @@ fn For() { // CHECK:STDOUT: 6: ; preds = %0 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !71 // CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !72 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a0986cb4211ec3fb(ptr %return, i32 %7), !dbg !73 +// CHECK:STDOUT: call void @_CSome.Optional.Core.1d1d639653cb3d8f(ptr %return, i32 %7), !dbg !73 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %1), !dbg !66 // CHECK:STDOUT: ret void, !dbg !74 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a0986cb4211ec3fb(ptr %return), !dbg !75 +// CHECK:STDOUT: call void @_CNone.Optional.Core.1d1d639653cb3d8f(ptr %return), !dbg !75 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %1), !dbg !66 // CHECK:STDOUT: ret void, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a0986cb4211ec3fb(ptr %self) #0 !dbg !77 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !83 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.1d1d639653cb3d8f(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !83 // CHECK:STDOUT: ret i1 %1, !dbg !84 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a0986cb4211ec3fb(ptr %self) #0 !dbg !85 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !88 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.1d1d639653cb3d8f(ptr %self) #0 !dbg !85 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !88 // CHECK:STDOUT: ret i32 %1, !dbg !89 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -173,24 +173,24 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !90 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 1), !dbg !94 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 1), !dbg !94 // CHECK:STDOUT: ret void, !dbg !95 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a0986cb4211ec3fb(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return, i32 %value), !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.1d1d639653cb3d8f(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return, i32 %value), !dbg !101 // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a0986cb4211ec3fb(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { -// CHECK:STDOUT: call void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return), !dbg !106 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.1d1d639653cb3d8f(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { +// CHECK:STDOUT: call void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return), !dbg !106 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !108 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !108 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !111 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !111 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !111 @@ -198,15 +198,15 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !113 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !113 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !116 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !116 // CHECK:STDOUT: ret i32 %1, !dbg !117 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 %other) #2 !dbg !118 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !124 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 %other) #2 !dbg !118 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !124 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !125 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !125 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !125 @@ -214,7 +214,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !126 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !126 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !129 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !129 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !130 @@ -223,14 +223,14 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !132 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !132 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !133 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !133 // CHECK:STDOUT: ret void, !dbg !134 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !135 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !135 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !140 // CHECK:STDOUT: ret i32 %1, !dbg !141 // CHECK:STDOUT: } @@ -291,7 +291,7 @@ fn For() { // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !33) // CHECK:STDOUT: !40 = !DILocation(line: 20, column: 7, scope: !37) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fed90f94367ce0d0:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5eaa50c99214837e:core.Destroy.Core", scope: null, file: !3, line: 20, type: !31, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !42) // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !41, type: !33) // CHECK:STDOUT: !44 = !DILocation(line: 20, column: 7, scope: !41) @@ -327,7 +327,7 @@ fn For() { // CHECK:STDOUT: !74 = !DILocation(line: 30, column: 9, scope: !60) // CHECK:STDOUT: !75 = !DILocation(line: 32, column: 16, scope: !60) // CHECK:STDOUT: !76 = !DILocation(line: 32, column: 9, scope: !60) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a0986cb4211ec3fb", scope: null, file: !78, line: 33, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.1d1d639653cb3d8f", scope: null, file: !78, line: 33, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !81) // CHECK:STDOUT: !78 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !79 = !DISubroutineType(types: !80) // CHECK:STDOUT: !80 = !{!33, !33} @@ -335,7 +335,7 @@ fn For() { // CHECK:STDOUT: !82 = !DILocalVariable(arg: 1, scope: !77, type: !33) // CHECK:STDOUT: !83 = !DILocation(line: 34, column: 12, scope: !77) // CHECK:STDOUT: !84 = !DILocation(line: 34, column: 5, scope: !77) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a0986cb4211ec3fb", scope: null, file: !78, line: 36, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.1d1d639653cb3d8f", scope: null, file: !78, line: 36, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !86) // CHECK:STDOUT: !86 = !{!87} // CHECK:STDOUT: !87 = !DILocalVariable(arg: 1, scope: !85, type: !33) // CHECK:STDOUT: !88 = !DILocation(line: 37, column: 12, scope: !85) @@ -346,29 +346,29 @@ fn For() { // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !90, type: !22) // CHECK:STDOUT: !94 = !DILocation(line: 365, column: 5, scope: !90) // CHECK:STDOUT: !95 = !DILocation(line: 363, column: 3, scope: !90) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a0986cb4211ec3fb", scope: null, file: !78, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.1d1d639653cb3d8f", scope: null, file: !78, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) // CHECK:STDOUT: !97 = !DISubroutineType(types: !98) // CHECK:STDOUT: !98 = !{!33, !22} // CHECK:STDOUT: !99 = !{!100} // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !22) // CHECK:STDOUT: !101 = !DILocation(line: 31, column: 12, scope: !96) // CHECK:STDOUT: !102 = !DILocation(line: 31, column: 5, scope: !96) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a0986cb4211ec3fb", scope: null, file: !78, line: 27, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.1d1d639653cb3d8f", scope: null, file: !78, line: 27, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !104 = !DISubroutineType(types: !105) // CHECK:STDOUT: !105 = !{!33} // CHECK:STDOUT: !106 = !DILocation(line: 28, column: 12, scope: !103) // CHECK:STDOUT: !107 = !DILocation(line: 28, column: 5, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 132, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 132, type: !79, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !109) // CHECK:STDOUT: !109 = !{!110} // CHECK:STDOUT: !110 = !DILocalVariable(arg: 1, scope: !108, type: !33) // CHECK:STDOUT: !111 = !DILocation(line: 133, column: 12, scope: !108) // CHECK:STDOUT: !112 = !DILocation(line: 133, column: 5, scope: !108) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 135, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 135, type: !54, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !114) // CHECK:STDOUT: !114 = !{!115} // CHECK:STDOUT: !115 = !DILocalVariable(arg: 1, scope: !113, type: !33) // CHECK:STDOUT: !116 = !DILocation(line: 136, column: 12, scope: !113) // CHECK:STDOUT: !117 = !DILocation(line: 136, column: 5, scope: !113) -// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !91, line: 299, type: !119, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) +// CHECK:STDOUT: !118 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !91, line: 299, type: !119, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !121) // CHECK:STDOUT: !119 = !DISubroutineType(types: !120) // CHECK:STDOUT: !120 = !{null, !22, !22} // CHECK:STDOUT: !121 = !{!122, !123} @@ -376,16 +376,16 @@ fn For() { // CHECK:STDOUT: !123 = !DILocalVariable(arg: 2, scope: !118, type: !22) // CHECK:STDOUT: !124 = !DILocation(line: 4294967295, scope: !118) // CHECK:STDOUT: !125 = !DILocation(line: 299, column: 3, scope: !118) -// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) +// CHECK:STDOUT: !126 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !127) // CHECK:STDOUT: !127 = !{!128} // CHECK:STDOUT: !128 = !DILocalVariable(arg: 1, scope: !126, type: !22) // CHECK:STDOUT: !129 = !DILocation(line: 128, column: 5, scope: !126) // CHECK:STDOUT: !130 = !DILocation(line: 129, column: 5, scope: !126) // CHECK:STDOUT: !131 = !DILocation(line: 130, column: 5, scope: !126) -// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "None", linkageName: "_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 116, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !132 = distinct !DISubprogram(name: "None", linkageName: "_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !78, line: 116, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !133 = !DILocation(line: 119, column: 5, scope: !132) // CHECK:STDOUT: !134 = !DILocation(line: 120, column: 5, scope: !132) -// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !91, line: 62, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) +// CHECK:STDOUT: !135 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !91, line: 62, type: !136, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !138) // CHECK:STDOUT: !136 = !DISubroutineType(types: !137) // CHECK:STDOUT: !137 = !{!22, !22} // CHECK:STDOUT: !138 = !{!139} diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index dddd3a6d37a0..a9a508199993 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -50,17 +50,17 @@ fn For() { // CHECK:STDOUT: for.next: ; preds = %for.body, %entry // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_CNext.IntRange.9452f4c51951679b.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc21_33.1.temp, ptr %.loc21_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.a0986cb4211ec3fb(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.HasValue.call = call i1 @_CHasValue.Optional.Core.1d1d639653cb3d8f(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %Optional.HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.a0986cb4211ec3fb(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Optional.Get.call = call i32 @_CGet.Optional.Core.1d1d639653cb3d8f(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @_CG.Main(), !dbg !10 // CHECK:STDOUT: br label %for.next, !dbg !11 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next // CHECK:STDOUT: call void @_CH.Main(), !dbg !12 -// CHECK:STDOUT: call void @"_COp.fed90f94367ce0d0:core.Destroy.Core"(ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_COp.5eaa50c99214837e:core.Destroy.Core"(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %var), !dbg !8 // CHECK:STDOUT: call void @"_COp.4f0cde2dfabc7dc4:core.Destroy.Core"(ptr %.loc21_32.1.temp), !dbg !7 // CHECK:STDOUT: ret void, !dbg !13 @@ -93,7 +93,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.fed90f94367ce0d0:core.Destroy.Core"(ptr %self) #0 !dbg !37 { +// CHECK:STDOUT: define weak_odr void @"_COp.5eaa50c99214837e:core.Destroy.Core"(ptr %self) #0 !dbg !37 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !40 // CHECK:STDOUT: } @@ -135,25 +135,25 @@ fn For() { // CHECK:STDOUT: 6: ; preds = %0 // CHECK:STDOUT: call void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %cursor), !dbg !67 // CHECK:STDOUT: %7 = load i32, ptr %1, align 4, !dbg !68 -// CHECK:STDOUT: call void @_CSome.Optional.Core.a0986cb4211ec3fb(ptr %return, i32 %7), !dbg !69 +// CHECK:STDOUT: call void @_CSome.Optional.Core.1d1d639653cb3d8f(ptr %return, i32 %7), !dbg !69 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %1), !dbg !62 // CHECK:STDOUT: ret void, !dbg !70 // CHECK:STDOUT: // CHECK:STDOUT: 8: ; preds = %0 -// CHECK:STDOUT: call void @_CNone.Optional.Core.a0986cb4211ec3fb(ptr %return), !dbg !71 +// CHECK:STDOUT: call void @_CNone.Optional.Core.1d1d639653cb3d8f(ptr %return), !dbg !71 // CHECK:STDOUT: call void @"_COp.7e389eab4a7e5487:core.Destroy.Core"(ptr %1), !dbg !62 // CHECK:STDOUT: ret void, !dbg !72 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.a0986cb4211ec3fb(ptr %self) #0 !dbg !73 { -// CHECK:STDOUT: %1 = call i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !79 +// CHECK:STDOUT: define linkonce_odr i1 @_CHasValue.Optional.Core.1d1d639653cb3d8f(ptr %self) #0 !dbg !73 { +// CHECK:STDOUT: %1 = call i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !79 // CHECK:STDOUT: ret i1 %1, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.a0986cb4211ec3fb(ptr %self) #0 !dbg !81 { -// CHECK:STDOUT: %1 = call i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !84 +// CHECK:STDOUT: define linkonce_odr i32 @_CGet.Optional.Core.1d1d639653cb3d8f(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: %1 = call i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %self), !dbg !84 // CHECK:STDOUT: ret i32 %1, !dbg !85 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -161,24 +161,24 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !86 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 1), !dbg !90 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 1), !dbg !90 // CHECK:STDOUT: ret void, !dbg !91 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.a0986cb4211ec3fb(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !92 { -// CHECK:STDOUT: call void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return, i32 %value), !dbg !97 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.1d1d639653cb3d8f(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !92 { +// CHECK:STDOUT: call void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return, i32 %value), !dbg !97 // CHECK:STDOUT: ret void, !dbg !98 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.a0986cb4211ec3fb(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !99 { -// CHECK:STDOUT: call void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return), !dbg !102 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.1d1d639653cb3d8f(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !99 { +// CHECK:STDOUT: call void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %return), !dbg !102 // CHECK:STDOUT: ret void, !dbg !103 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !104 { +// CHECK:STDOUT: define linkonce_odr i1 @"_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !104 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 1, !dbg !107 // CHECK:STDOUT: %1 = load i8, ptr %has_value, align 1, !dbg !107 // CHECK:STDOUT: %2 = trunc i8 %1 to i1, !dbg !107 @@ -186,15 +186,15 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !109 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr %value) #0 !dbg !109 { // CHECK:STDOUT: %value1 = getelementptr inbounds nuw <{ i32, i1 }>, ptr %value, i32 0, i32 0, !dbg !112 // CHECK:STDOUT: %1 = load i32, ptr %value1, align 4, !dbg !112 // CHECK:STDOUT: ret i32 %1, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 %other) #2 !dbg !114 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !120 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 %other) #2 !dbg !114 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !120 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !121 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !121 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !121 @@ -202,7 +202,7 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !122 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !122 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !125 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !125 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !126 @@ -211,14 +211,14 @@ fn For() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !128 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !129 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !129 // CHECK:STDOUT: ret void, !dbg !130 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !131 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !131 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !136 // CHECK:STDOUT: ret i32 %1, !dbg !137 // CHECK:STDOUT: } @@ -275,7 +275,7 @@ fn For() { // CHECK:STDOUT: !34 = !{!35} // CHECK:STDOUT: !35 = !DILocalVariable(arg: 1, scope: !33, type: !29) // CHECK:STDOUT: !36 = !DILocation(line: 21, column: 7, scope: !33) -// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.fed90f94367ce0d0:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) +// CHECK:STDOUT: !37 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5eaa50c99214837e:core.Destroy.Core", scope: null, file: !3, line: 21, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !38) // CHECK:STDOUT: !38 = !{!39} // CHECK:STDOUT: !39 = !DILocalVariable(arg: 1, scope: !37, type: !29) // CHECK:STDOUT: !40 = !DILocation(line: 21, column: 7, scope: !37) @@ -311,7 +311,7 @@ fn For() { // CHECK:STDOUT: !70 = !DILocation(line: 30, column: 9, scope: !56) // CHECK:STDOUT: !71 = !DILocation(line: 32, column: 16, scope: !56) // CHECK:STDOUT: !72 = !DILocation(line: 32, column: 9, scope: !56) -// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.a0986cb4211ec3fb", scope: null, file: !74, line: 33, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !77) +// CHECK:STDOUT: !73 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.1d1d639653cb3d8f", scope: null, file: !74, line: 33, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !77) // CHECK:STDOUT: !74 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !75 = !DISubroutineType(types: !76) // CHECK:STDOUT: !76 = !{!29, !29} @@ -319,7 +319,7 @@ fn For() { // CHECK:STDOUT: !78 = !DILocalVariable(arg: 1, scope: !73, type: !29) // CHECK:STDOUT: !79 = !DILocation(line: 34, column: 12, scope: !73) // CHECK:STDOUT: !80 = !DILocation(line: 34, column: 5, scope: !73) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.a0986cb4211ec3fb", scope: null, file: !74, line: 36, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.Optional.Core.1d1d639653cb3d8f", scope: null, file: !74, line: 36, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) // CHECK:STDOUT: !82 = !{!83} // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !29) // CHECK:STDOUT: !84 = !DILocation(line: 37, column: 12, scope: !81) @@ -330,29 +330,29 @@ fn For() { // CHECK:STDOUT: !89 = !DILocalVariable(arg: 1, scope: !86, type: !18) // CHECK:STDOUT: !90 = !DILocation(line: 365, column: 5, scope: !86) // CHECK:STDOUT: !91 = !DILocation(line: 363, column: 3, scope: !86) -// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.a0986cb4211ec3fb", scope: null, file: !74, line: 30, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) +// CHECK:STDOUT: !92 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.1d1d639653cb3d8f", scope: null, file: !74, line: 30, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !95) // CHECK:STDOUT: !93 = !DISubroutineType(types: !94) // CHECK:STDOUT: !94 = !{!29, !18} // CHECK:STDOUT: !95 = !{!96} // CHECK:STDOUT: !96 = !DILocalVariable(arg: 1, scope: !92, type: !18) // CHECK:STDOUT: !97 = !DILocation(line: 31, column: 12, scope: !92) // CHECK:STDOUT: !98 = !DILocation(line: 31, column: 5, scope: !92) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.a0986cb4211ec3fb", scope: null, file: !74, line: 27, type: !100, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.1d1d639653cb3d8f", scope: null, file: !74, line: 27, type: !100, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !100 = !DISubroutineType(types: !101) // CHECK:STDOUT: !101 = !{!29} // CHECK:STDOUT: !102 = !DILocation(line: 28, column: 12, scope: !99) // CHECK:STDOUT: !103 = !DILocation(line: 28, column: 5, scope: !99) -// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 132, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) +// CHECK:STDOUT: !104 = distinct !DISubprogram(name: "Has", linkageName: "_CHas.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 132, type: !75, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !105) // CHECK:STDOUT: !105 = !{!106} // CHECK:STDOUT: !106 = !DILocalVariable(arg: 1, scope: !104, type: !29) // CHECK:STDOUT: !107 = !DILocation(line: 133, column: 12, scope: !104) // CHECK:STDOUT: !108 = !DILocation(line: 133, column: 5, scope: !104) -// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 135, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) +// CHECK:STDOUT: !109 = distinct !DISubprogram(name: "Get", linkageName: "_CGet.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 135, type: !50, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) // CHECK:STDOUT: !110 = !{!111} // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !109, type: !29) // CHECK:STDOUT: !112 = !DILocation(line: 136, column: 12, scope: !109) // CHECK:STDOUT: !113 = !DILocation(line: 136, column: 5, scope: !109) -// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !87, line: 299, type: !115, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !117) +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !87, line: 299, type: !115, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !117) // CHECK:STDOUT: !115 = !DISubroutineType(types: !116) // CHECK:STDOUT: !116 = !{null, !18, !18} // CHECK:STDOUT: !117 = !{!118, !119} @@ -360,16 +360,16 @@ fn For() { // CHECK:STDOUT: !119 = !DILocalVariable(arg: 2, scope: !114, type: !18) // CHECK:STDOUT: !120 = !DILocation(line: 4294967295, scope: !114) // CHECK:STDOUT: !121 = !DILocation(line: 299, column: 3, scope: !114) -// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 122, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !123) +// CHECK:STDOUT: !122 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 122, type: !93, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !123) // CHECK:STDOUT: !123 = !{!124} // CHECK:STDOUT: !124 = !DILocalVariable(arg: 1, scope: !122, type: !18) // CHECK:STDOUT: !125 = !DILocation(line: 128, column: 5, scope: !122) // CHECK:STDOUT: !126 = !DILocation(line: 129, column: 5, scope: !122) // CHECK:STDOUT: !127 = !DILocation(line: 130, column: 5, scope: !122) -// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.3e8267224c5dc9c2:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 116, type: !100, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !128 = distinct !DISubprogram(name: "None", linkageName: "_CNone.41c279c2a75ec21d:OptionalStorage.Core.0b1ea4541e2057b5", scope: null, file: !74, line: 116, type: !100, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !129 = !DILocation(line: 119, column: 5, scope: !128) // CHECK:STDOUT: !130 = !DILocation(line: 120, column: 5, scope: !128) -// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !87, line: 62, type: !132, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) +// CHECK:STDOUT: !131 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !87, line: 62, type: !132, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !134) // CHECK:STDOUT: !132 = !DISubroutineType(types: !133) // CHECK:STDOUT: !133 = !{!18, !18} // CHECK:STDOUT: !134 = !{!135} diff --git a/toolchain/lower/testdata/interop/cpp/constructor.carbon b/toolchain/lower/testdata/interop/cpp/constructor.carbon index 4cc954c5f803..1b694de1106a 100644 --- a/toolchain/lower/testdata/interop/cpp/constructor.carbon +++ b/toolchain/lower/testdata/interop/cpp/constructor.carbon @@ -281,7 +281,7 @@ fn Four() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %_.var = alloca [8 x i8], align 1, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %_.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %_.var), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -306,7 +306,7 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret([8 x i8]) %return) #0 !dbg !25 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret([8 x i8]) %return) #0 !dbg !25 { // CHECK:STDOUT: call void @"_COp:thunk.C.Cpp"(ptr %return), !dbg !27 // CHECK:STDOUT: ret void, !dbg !28 // CHECK:STDOUT: } @@ -359,7 +359,7 @@ fn Four() { // CHECK:STDOUT: !22 = !{!23} // CHECK:STDOUT: !23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !24 = !DILocation(line: 4, column: 3, scope: !19) -// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !25 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !26, line: 9, type: !21, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !26 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !27 = !DILocation(line: 9, column: 28, scope: !25) // CHECK:STDOUT: !28 = !DILocation(line: 9, column: 21, scope: !25) @@ -388,11 +388,11 @@ fn Four() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @_ZN26ImplicitlyDefaultedDefaultC1Ev.carbon_thunk(ptr %.loc8_65.1.temp), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc9), !dbg !15 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.22b4681b019423d7"(ptr %_.var.loc9), !dbg !15 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.22b4681b019423d7"(ptr %_.var.loc9), !dbg !15 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @_ZN26ExplicitlyDefaultedDefaultC1Ev.carbon_thunk(ptr %.loc12_65.1.temp), !dbg !16 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc13), !dbg !17 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.1a27c303748a2360"(ptr %_.var.loc13), !dbg !17 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.1a27c303748a2360"(ptr %_.var.loc13), !dbg !17 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -434,13 +434,13 @@ fn Four() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.22b4681b019423d7"(ptr sret([4 x i8]) %return) #0 !dbg !32 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.22b4681b019423d7"(ptr sret([4 x i8]) %return) #0 !dbg !32 { // CHECK:STDOUT: call void @"_COp:thunk.ImplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !34 // CHECK:STDOUT: ret void, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.1a27c303748a2360"(ptr sret([4 x i8]) %return) #0 !dbg !36 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.1a27c303748a2360"(ptr sret([4 x i8]) %return) #0 !dbg !36 { // CHECK:STDOUT: call void @"_COp:thunk.ExplicitlyDefaultedDefault.Cpp"(ptr %return), !dbg !37 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } @@ -513,11 +513,11 @@ fn Four() { // CHECK:STDOUT: !29 = !{!"p1 _ZTS26ExplicitlyDefaultedDefault", !21, i64 0} // CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.ExplicitlyDefaultedDefault.Cpp", scope: null, file: !23, line: 7, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DILocation(line: 7, column: 3, scope: !30) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.22b4681b019423d7", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.22b4681b019423d7", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !33 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !34 = !DILocation(line: 9, column: 28, scope: !32) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 21, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.1a27c303748a2360", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.1a27c303748a2360", scope: null, file: !33, line: 9, type: !24, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !37 = !DILocation(line: 9, column: 28, scope: !36) // CHECK:STDOUT: !38 = !DILocation(line: 9, column: 21, scope: !36) // CHECK:STDOUT: !39 = !{!40, !8, i64 0} diff --git a/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon b/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon index 8e9a3238b7e2..baa9947520bd 100644 --- a/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon +++ b/toolchain/lower/testdata/interop/cpp/cpp_compat_int.carbon @@ -44,29 +44,29 @@ fn DoubleULong64(ul64: Core.CppCompat.ULongLong64) -> u64 { // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CDoubleLong32.Main(i32 %l32) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.binding.as_type.as.MulWith.impl.Op.call = mul i32 2, %l32, !dbg !10 -// CHECK:STDOUT: ret i32 %T.binding.as_type.as.MulWith.impl.Op.call, !dbg !11 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %l32, !dbg !10 +// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CDoubleULong32.Main(i32 %ul32) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.binding.as_type.as.MulWith.impl.Op.call = mul i32 2, %ul32, !dbg !18 -// CHECK:STDOUT: ret i32 %T.binding.as_type.as.MulWith.impl.Op.call, !dbg !19 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i32 2, %ul32, !dbg !18 +// CHECK:STDOUT: ret i32 %T.as_type.as.MulWith.impl.Op.call, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i64 @_CDoubleLongLong64.Main(i64 %ll64) #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.binding.as_type.as.MulWith.impl.Op.call = mul i64 2, %ll64, !dbg !26 -// CHECK:STDOUT: ret i64 %T.binding.as_type.as.MulWith.impl.Op.call, !dbg !27 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ll64, !dbg !26 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i64 @_CDoubleULong64.Main(i64 %ul64) #0 !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %T.binding.as_type.as.MulWith.impl.Op.call = mul i64 2, %ul64, !dbg !34 -// CHECK:STDOUT: ret i64 %T.binding.as_type.as.MulWith.impl.Op.call, !dbg !35 +// CHECK:STDOUT: %T.as_type.as.MulWith.impl.Op.call = mul i64 2, %ul64, !dbg !34 +// CHECK:STDOUT: ret i64 %T.as_type.as.MulWith.impl.Op.call, !dbg !35 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } diff --git a/toolchain/lower/testdata/interop/cpp/parameters.carbon b/toolchain/lower/testdata/interop/cpp/parameters.carbon index c570ff0c5cfb..1db96776a589 100644 --- a/toolchain/lower/testdata/interop/cpp/parameters.carbon +++ b/toolchain/lower/testdata/interop/cpp/parameters.carbon @@ -367,7 +367,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: entry: // CHECK:STDOUT: %x.var = alloca [12 x i8], align 1, !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %x.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.64f6b96556a8f2d4"(ptr %x.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.64f6b96556a8f2d4"(ptr %x.var), !dbg !14 // CHECK:STDOUT: %.loc8_4.a = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 0, !dbg !15 // CHECK:STDOUT: store i32 1, ptr %.loc8_4.a, align 4, !dbg !15 // CHECK:STDOUT: %.loc9_4.b = getelementptr inbounds nuw [12 x i8], ptr %x.var, i32 0, i32 4, !dbg !16 @@ -416,7 +416,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.64f6b96556a8f2d4"(ptr sret([12 x i8]) %return) #0 !dbg !30 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.64f6b96556a8f2d4"(ptr sret([12 x i8]) %return) #0 !dbg !30 { // CHECK:STDOUT: call void @"_COp:thunk.X.Cpp"(ptr %return), !dbg !32 // CHECK:STDOUT: ret void, !dbg !33 // CHECK:STDOUT: } @@ -471,7 +471,7 @@ fn PassValueExpr(y: Cpp.Y) { // CHECK:STDOUT: !27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64) // CHECK:STDOUT: !28 = !DILocation(line: 2, column: 8, scope: !23) // CHECK:STDOUT: !29 = !{i64 0, i64 4, !7, i64 4, i64 4, !7, i64 8, i64 4, !7} -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.64f6b96556a8f2d4", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.64f6b96556a8f2d4", scope: null, file: !31, line: 9, type: !25, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !31 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !32 = !DILocation(line: 9, column: 28, scope: !30) // CHECK:STDOUT: !33 = !DILocation(line: 9, column: 21, scope: !30) diff --git a/toolchain/lower/testdata/interop/cpp/pointer.carbon b/toolchain/lower/testdata/interop/cpp/pointer.carbon index 02b21ac674b3..c2b9cff6d358 100644 --- a/toolchain/lower/testdata/interop/cpp/pointer.carbon +++ b/toolchain/lower/testdata/interop/cpp/pointer.carbon @@ -218,9 +218,9 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtr.Main(ptr %p) #0 !dbg !18 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc22_15.2.temp = alloca ptr, align 8, !dbg !21 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e76fd6d2be138e4a"(ptr %p), !dbg !21 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.74277d0e61790777"(ptr %p), !dbg !21 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc22_15.2.temp), !dbg !21 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_15.2.temp, align 8, !dbg !21 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: %.loc22_15.4 = load ptr, ptr %.loc22_15.2.temp, align 8, !dbg !21 // CHECK:STDOUT: call void @_Z7TakePtrP1C(ptr %.loc22_15.4), !dbg !22 // CHECK:STDOUT: call void @"_COp.b17d31fafee11ec0:core.Destroy.Core"(ptr %.loc22_15.2.temp), !dbg !21 @@ -260,9 +260,9 @@ fn Convert() { // CHECK:STDOUT: define void @_CPassNonnullPtrWithThunk.Main(ptr %p) #0 !dbg !41 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc35_24.2.temp = alloca ptr, align 8, !dbg !44 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e76fd6d2be138e4a"(ptr %p), !dbg !44 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.74277d0e61790777"(ptr %p), !dbg !44 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc35_24.2.temp), !dbg !44 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_24.2.temp, align 8, !dbg !44 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: %.loc35_24.4 = load ptr, ptr %.loc35_24.2.temp, align 8, !dbg !44 // CHECK:STDOUT: call void @_Z16TakePtrWithThunkP1Ci.carbon_thunk1(ptr %.loc35_24.4), !dbg !45 // CHECK:STDOUT: call void @"_COp.b17d31fafee11ec0:core.Destroy.Core"(ptr %.loc35_24.2.temp), !dbg !44 @@ -294,8 +294,8 @@ fn Convert() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e76fd6d2be138e4a"(ptr %self) #0 !dbg !53 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63"(ptr %self), !dbg !59 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.74277d0e61790777"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63"(ptr %self), !dbg !59 // CHECK:STDOUT: ret ptr %1, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -303,7 +303,7 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #3 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.8f431b36581f9e63(ptr %self), !dbg !64 // CHECK:STDOUT: ret ptr %1, !dbg !65 // CHECK:STDOUT: } @@ -330,7 +330,7 @@ fn Convert() { // CHECK:STDOUT: declare noundef ptr @_Z18ReturnPtrWithThunki(i32 noundef) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e76fd6d2be138e4a", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.74277d0e61790777", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -395,7 +395,7 @@ fn Convert() { // CHECK:STDOUT: !50 = distinct !DISubprogram(name: "ReturnPtrWithThunk", linkageName: "_CReturnPtrWithThunk.Main", scope: null, file: !6, line: 38, type: !33, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !51 = !DILocation(line: 39, column: 10, scope: !50) // CHECK:STDOUT: !52 = !DILocation(line: 39, column: 3, scope: !50) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e76fd6d2be138e4a", scope: null, file: !54, line: 96, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.74277d0e61790777", scope: null, file: !54, line: 96, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !57) // CHECK:STDOUT: !54 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !55 = !DISubroutineType(types: !56) // CHECK:STDOUT: !56 = !{!14, !14} @@ -403,7 +403,7 @@ fn Convert() { // CHECK:STDOUT: !58 = !DILocalVariable(arg: 1, scope: !53, type: !14) // CHECK:STDOUT: !59 = !DILocation(line: 97, column: 12, scope: !53) // CHECK:STDOUT: !60 = !DILocation(line: 97, column: 5, scope: !53) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63", scope: null, file: !54, line: 71, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.8f431b36581f9e63", scope: null, file: !54, line: 71, type: !55, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 72, column: 12, scope: !61) @@ -434,9 +434,9 @@ fn Convert() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.1.temp), !dbg !14 // CHECK:STDOUT: store ptr %make.call, ptr %.loc9_21.1.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.3 = load ptr, ptr %.loc9_21.1.temp, align 8, !dbg !14 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.ace022aad6522dbd"(ptr %.loc9_21.3), !dbg !14 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.864cb1aacb88d008"(ptr %.loc9_21.3), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc9_21.5.temp), !dbg !14 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc9_21.5.temp, align 8, !dbg !14 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: %.loc9_21.7 = load ptr, ptr %.loc9_21.5.temp, align 8, !dbg !14 // CHECK:STDOUT: call void @_Z4takePK1C(ptr %.loc9_21.7), !dbg !15 // CHECK:STDOUT: call void @"_COp.155dfcb6d80d9d93:core.Destroy.Core"(ptr %.loc9_21.5.temp), !dbg !14 @@ -476,13 +476,13 @@ fn Convert() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.ace022aad6522dbd"(ptr %self) #0 !dbg !36 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.6443ea83fd43c001.Core:OptionalAs.c7a50af9bdd61b43.Core.9cffbb0df40531a7"(ptr %self), !dbg !42 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.864cb1aacb88d008"(ptr %self) #0 !dbg !36 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.Optional.379070d241187444.Core:OptionalAs.f58b2ba767714873.Core.9cffbb0df40531a7"(ptr %self), !dbg !42 // CHECK:STDOUT: ret ptr %1, !dbg !43 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.6443ea83fd43c001.Core:OptionalAs.c7a50af9bdd61b43.Core.9cffbb0df40531a7"(ptr %self) #0 !dbg !44 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.Optional.379070d241187444.Core:OptionalAs.f58b2ba767714873.Core.9cffbb0df40531a7"(ptr %self) #0 !dbg !44 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !47 // CHECK:STDOUT: %temp1 = alloca ptr, align 8, !dbg !47 // CHECK:STDOUT: %1 = call i1 @_CHasValue.Optional.Core.e4de4a7eec6ed951(ptr %self), !dbg !48 @@ -597,7 +597,7 @@ fn Convert() { // CHECK:STDOUT: !33 = !{!34} // CHECK:STDOUT: !34 = !DILocalVariable(arg: 1, scope: !32, type: !20) // CHECK:STDOUT: !35 = !DILocation(line: 9, column: 12, scope: !32) -// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.ace022aad6522dbd", scope: null, file: !37, line: 96, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) +// CHECK:STDOUT: !36 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.864cb1aacb88d008", scope: null, file: !37, line: 96, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !40) // CHECK:STDOUT: !37 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !38 = !DISubroutineType(types: !39) // CHECK:STDOUT: !39 = !{!20, !20} @@ -605,7 +605,7 @@ fn Convert() { // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !20) // CHECK:STDOUT: !42 = !DILocation(line: 97, column: 12, scope: !36) // CHECK:STDOUT: !43 = !DILocation(line: 97, column: 5, scope: !36) -// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.6443ea83fd43c001.Core:OptionalAs.c7a50af9bdd61b43.Core.9cffbb0df40531a7", scope: null, file: !37, line: 86, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) +// CHECK:STDOUT: !44 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Optional.379070d241187444.Core:OptionalAs.f58b2ba767714873.Core.9cffbb0df40531a7", scope: null, file: !37, line: 86, type: !38, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !45) // CHECK:STDOUT: !45 = !{!46} // CHECK:STDOUT: !46 = !DILocalVariable(arg: 1, scope: !44, type: !20) // CHECK:STDOUT: !47 = !DILocation(line: 88, column: 31, scope: !44) diff --git a/toolchain/lower/testdata/interop/cpp/reference.carbon b/toolchain/lower/testdata/interop/cpp/reference.carbon index 6204c388ba22..56a1a183fb27 100644 --- a/toolchain/lower/testdata/interop/cpp/reference.carbon +++ b/toolchain/lower/testdata/interop/cpp/reference.carbon @@ -146,7 +146,7 @@ fn GetRefs() { // CHECK:STDOUT: %.loc24_22.3.temp = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc25_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_18.2.temp), !dbg !15 // CHECK:STDOUT: call void @_Z9TakeCRRefO1C.carbon_thunk(ptr @C.val.loc19_20.3), !dbg !20 @@ -236,7 +236,7 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret({}) %return) #0 !dbg !43 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret({}) %return) #0 !dbg !43 { // CHECK:STDOUT: call void @"_COp:thunk.C.Cpp"(ptr %return), !dbg !45 // CHECK:STDOUT: ret void, !dbg !46 // CHECK:STDOUT: } @@ -307,7 +307,7 @@ fn GetRefs() { // CHECK:STDOUT: !40 = !{!41} // CHECK:STDOUT: !41 = !DILocalVariable(arg: 1, scope: !36, type: !39) // CHECK:STDOUT: !42 = !DILocation(line: 25, column: 23, scope: !36) -// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !43 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !44, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !44 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !45 = !DILocation(line: 9, column: 28, scope: !43) // CHECK:STDOUT: !46 = !DILocation(line: 9, column: 21, scope: !43) @@ -331,7 +331,7 @@ fn GetRefs() { // CHECK:STDOUT: %.loc25_22.3.temp = alloca i32, align 4, !dbg !17 // CHECK:STDOUT: %.loc26_23.2.temp = alloca i32, align 4, !dbg !18 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %c.var), !dbg !14 -// CHECK:STDOUT: call void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %c.var), !dbg !14 +// CHECK:STDOUT: call void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr %c.var), !dbg !14 // CHECK:STDOUT: call void @_Z8TakeCRefR1C10ForceThunk.carbon_thunk1(ptr %c.var), !dbg !19 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc20_18.2.temp), !dbg !15 // CHECK:STDOUT: call void @_Z9TakeCRRefRK1C10ForceThunk.carbon_thunk1(ptr @C.val.loc20_20.3), !dbg !20 @@ -443,7 +443,7 @@ fn GetRefs() { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #4 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret({}) %return) #0 !dbg !45 { +// CHECK:STDOUT: define linkonce_odr void @"_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b"(ptr sret({}) %return) #0 !dbg !45 { // CHECK:STDOUT: call void @"_COp:thunk.C.Cpp"(ptr %return), !dbg !47 // CHECK:STDOUT: ret void, !dbg !48 // CHECK:STDOUT: } @@ -520,7 +520,7 @@ fn GetRefs() { // CHECK:STDOUT: !42 = !{!43} // CHECK:STDOUT: !43 = !DILocalVariable(arg: 1, scope: !38, type: !41) // CHECK:STDOUT: !44 = !DILocation(line: 26, column: 23, scope: !38) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9b0a46309e124f8a:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d288d62be0e5d791:DefaultOrUnformed.Core.93349b0fe912a29b", scope: null, file: !46, line: 9, type: !30, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !46 = !DIFile(filename: "min_prelude/parts/default.carbon", directory: "") // CHECK:STDOUT: !47 = !DILocation(line: 9, column: 28, scope: !45) // CHECK:STDOUT: !48 = !DILocation(line: 9, column: 21, scope: !45) diff --git a/toolchain/lower/testdata/interop/cpp/void.carbon b/toolchain/lower/testdata/interop/cpp/void.carbon index 94ce1cf82a0b..f2c354b1cc2c 100644 --- a/toolchain/lower/testdata/interop/cpp/void.carbon +++ b/toolchain/lower/testdata/interop/cpp/void.carbon @@ -65,9 +65,9 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassVoidPtr.Main(ptr %a) #0 !dbg !11 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc7_21.2.temp = alloca ptr, align 8, !dbg !17 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.66983884551336cb"(ptr %a), !dbg !17 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.801c3f47fb77aac0"(ptr %a), !dbg !17 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_21.2.temp), !dbg !17 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !17 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !17 // CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !17 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !18 // CHECK:STDOUT: call void @"_COp.ee91ab4ecda32839:core.Destroy.Core"(ptr %.loc7_21.2.temp), !dbg !17 @@ -92,9 +92,9 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtr.Main(ptr %a) #0 !dbg !28 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc11_21.2.temp = alloca ptr, align 8, !dbg !31 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.295aa3526801a9d4"(ptr %a), !dbg !31 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.c500991ed3bab858"(ptr %a), !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc11_21.2.temp), !dbg !31 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !31 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc11_21.2.temp, align 8, !dbg !31 // CHECK:STDOUT: %.loc11_21.4 = load ptr, ptr %.loc11_21.2.temp, align 8, !dbg !31 // CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc11_21.4), !dbg !32 // CHECK:STDOUT: call void @"_COp.ee91ab4ecda32839:core.Destroy.Core"(ptr %.loc11_21.2.temp), !dbg !31 @@ -105,9 +105,9 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !34 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc15_27.2.temp = alloca ptr, align 8, !dbg !37 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e995c7ea1c3d1cc3"(ptr %a), !dbg !37 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.35919d8378ffb0dd"(ptr %a), !dbg !37 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc15_27.2.temp), !dbg !37 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !37 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc15_27.2.temp, align 8, !dbg !37 // CHECK:STDOUT: %.loc15_27.4 = load ptr, ptr %.loc15_27.2.temp, align 8, !dbg !37 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc15_27.4), !dbg !38 // CHECK:STDOUT: call void @"_COp.0d7a529f95147939:core.Destroy.Core"(ptr %.loc15_27.2.temp), !dbg !37 @@ -132,9 +132,9 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: define void @_CPassConstIntPtrToConstVoidPtr.Main(ptr %a) #0 !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %.loc19_27.2.temp = alloca ptr, align 8, !dbg !51 -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e995c7ea1c3d1cc3"(ptr %a), !dbg !51 +// CHECK:STDOUT: %U.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.35919d8378ffb0dd"(ptr %a), !dbg !51 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc19_27.2.temp), !dbg !51 -// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc19_27.2.temp, align 8, !dbg !51 +// CHECK:STDOUT: store ptr %U.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc19_27.2.temp, align 8, !dbg !51 // CHECK:STDOUT: %.loc19_27.4 = load ptr, ptr %.loc19_27.2.temp, align 8, !dbg !51 // CHECK:STDOUT: call void @_Z19take_const_void_ptrPKv(ptr %.loc19_27.4), !dbg !52 // CHECK:STDOUT: call void @"_COp.0d7a529f95147939:core.Destroy.Core"(ptr %.loc19_27.2.temp), !dbg !51 @@ -142,8 +142,8 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.66983884551336cb"(ptr %self) #0 !dbg !54 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504"(ptr %self), !dbg !60 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.801c3f47fb77aac0"(ptr %self) #0 !dbg !54 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504"(ptr %self), !dbg !60 // CHECK:STDOUT: ret ptr %1, !dbg !61 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -151,25 +151,25 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #2 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.295aa3526801a9d4"(ptr %self) #0 !dbg !62 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.57bd8d0c2213b1aa"(ptr %self), !dbg !65 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.c500991ed3bab858"(ptr %self) #0 !dbg !62 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.57bd8d0c2213b1aa"(ptr %self), !dbg !65 // CHECK:STDOUT: ret ptr %1, !dbg !66 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e995c7ea1c3d1cc3"(ptr %self) #0 !dbg !67 { -// CHECK:STDOUT: %1 = call ptr @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.02dd0be934e1c38a"(ptr %self), !dbg !70 +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.35919d8378ffb0dd"(ptr %self) #0 !dbg !67 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.02dd0be934e1c38a"(ptr %self), !dbg !70 // CHECK:STDOUT: ret ptr %1, !dbg !71 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504"(ptr %self) #0 !dbg !72 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504"(ptr %self) #0 !dbg !72 { // CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.7bed839a0b822504(ptr %self), !dbg !75 // CHECK:STDOUT: ret ptr %1, !dbg !76 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.57bd8d0c2213b1aa"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.57bd8d0c2213b1aa"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !80 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !80 // CHECK:STDOUT: store ptr %self, ptr %temp, align 8, !dbg !80 @@ -179,7 +179,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.02dd0be934e1c38a"(ptr %self) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.02dd0be934e1c38a"(ptr %self) #0 !dbg !83 { // CHECK:STDOUT: %temp = alloca ptr, align 8, !dbg !86 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !86 // CHECK:STDOUT: %1 = call ptr @"_CConvert:thunk.e8f8f92d3d08d149:ImplicitAs.ffd58aeb29886b72.Core.b88d1103f417c6d4"(ptr %self), !dbg !86 @@ -230,7 +230,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 1, 2, 3, 7, 6, 5, 4 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e995c7ea1c3d1cc3", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.35919d8378ffb0dd", { 1, 0 } // CHECK:STDOUT: uselistorder ptr @_CSome.Optional.Core.7bed839a0b822504, { 1, 0 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -296,7 +296,7 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !51 = !DILocation(line: 19, column: 27, scope: !48) // CHECK:STDOUT: !52 = !DILocation(line: 19, column: 3, scope: !48) // CHECK:STDOUT: !53 = !DILocation(line: 18, column: 1, scope: !48) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.66983884551336cb", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.801c3f47fb77aac0", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !58) // CHECK:STDOUT: !55 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !56 = !DISubroutineType(types: !57) // CHECK:STDOUT: !57 = !{!14, !14} @@ -304,28 +304,28 @@ fn ConvertFromConstVoidPtr(p: const Cpp.void*) -> const i32* { // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !54, type: !14) // CHECK:STDOUT: !60 = !DILocation(line: 97, column: 12, scope: !54) // CHECK:STDOUT: !61 = !DILocation(line: 97, column: 5, scope: !54) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.295aa3526801a9d4", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.c500991ed3bab858", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !63) // CHECK:STDOUT: !63 = !{!64} // CHECK:STDOUT: !64 = !DILocalVariable(arg: 1, scope: !62, type: !14) // CHECK:STDOUT: !65 = !DILocation(line: 97, column: 12, scope: !62) // CHECK:STDOUT: !66 = !DILocation(line: 97, column: 5, scope: !62) -// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.e995c7ea1c3d1cc3", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) +// CHECK:STDOUT: !67 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.35919d8378ffb0dd", scope: null, file: !55, line: 96, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !68) // CHECK:STDOUT: !68 = !{!69} // CHECK:STDOUT: !69 = !DILocalVariable(arg: 1, scope: !67, type: !14) // CHECK:STDOUT: !70 = !DILocation(line: 97, column: 12, scope: !67) // CHECK:STDOUT: !71 = !DILocation(line: 97, column: 5, scope: !67) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504", scope: null, file: !55, line: 71, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.7bed839a0b822504", scope: null, file: !55, line: 71, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !73) // CHECK:STDOUT: !73 = !{!74} // CHECK:STDOUT: !74 = !DILocalVariable(arg: 1, scope: !72, type: !14) // CHECK:STDOUT: !75 = !DILocation(line: 72, column: 12, scope: !72) // CHECK:STDOUT: !76 = !DILocation(line: 72, column: 5, scope: !72) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.57bd8d0c2213b1aa", scope: null, file: !55, line: 78, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.57bd8d0c2213b1aa", scope: null, file: !55, line: 78, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !14) // CHECK:STDOUT: !80 = !DILocation(line: 79, column: 29, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 79, column: 12, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 79, column: 5, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.02dd0be934e1c38a", scope: null, file: !55, line: 78, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.02dd0be934e1c38a", scope: null, file: !55, line: 78, type: !56, spFlags: DISPFlagDefinition, unit: !5, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !14) // CHECK:STDOUT: !86 = !DILocation(line: 79, column: 29, scope: !83) diff --git a/toolchain/lower/testdata/operators/increment.carbon b/toolchain/lower/testdata/operators/increment.carbon index 63f46ed32c94..9c6b931ba029 100644 --- a/toolchain/lower/testdata/operators/increment.carbon +++ b/toolchain/lower/testdata/operators/increment.carbon @@ -44,13 +44,13 @@ fn IncrSigned() { // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define linkonce_odr void @"_COp.Int.9452f4c51951679b.Core:Inc.Core.be1e879c1ad406d8"(ptr %self) #0 !dbg !17 { -// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 1), !dbg !21 +// CHECK:STDOUT: call void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 1), !dbg !21 // CHECK:STDOUT: ret void, !dbg !22 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: alwaysinline nounwind -// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8"(ptr %self, i32 %other) #2 !dbg !23 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !29 +// CHECK:STDOUT: define linkonce_odr void @"_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93"(ptr %self, i32 %other) #2 !dbg !23 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %other), !dbg !29 // CHECK:STDOUT: %2 = load i32, ptr %self, align 4, !dbg !30 // CHECK:STDOUT: %3 = add i32 %2, %1, !dbg !30 // CHECK:STDOUT: store i32 %3, ptr %self, align 4, !dbg !30 @@ -58,7 +58,7 @@ fn IncrSigned() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !31 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !31 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !36 // CHECK:STDOUT: ret i32 %1, !dbg !37 // CHECK:STDOUT: } @@ -98,7 +98,7 @@ fn IncrSigned() { // CHECK:STDOUT: !20 = !DILocalVariable(arg: 1, scope: !17, type: !13) // CHECK:STDOUT: !21 = !DILocation(line: 365, column: 5, scope: !17) // CHECK:STDOUT: !22 = !DILocation(line: 363, column: 3, scope: !17) -// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.5375cfcbca6d9e35.Core.57ee91777b6354a8", scope: null, file: !18, line: 299, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Op", linkageName: "_COp:thunk.Int.9452f4c51951679b.Core:AddAssignWith.c820bd8c65a452f9.Core.f175e619b3f4dd93", scope: null, file: !18, line: 299, type: !24, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !26) // CHECK:STDOUT: !24 = !DISubroutineType(types: !25) // CHECK:STDOUT: !25 = !{null, !13, !13} // CHECK:STDOUT: !26 = !{!27, !28} @@ -106,7 +106,7 @@ fn IncrSigned() { // CHECK:STDOUT: !28 = !DILocalVariable(arg: 2, scope: !23, type: !13) // CHECK:STDOUT: !29 = !DILocation(line: 4294967295, scope: !23) // CHECK:STDOUT: !30 = !DILocation(line: 299, column: 3, scope: !23) -// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !18, line: 62, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) +// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !18, line: 62, type: !32, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !34) // CHECK:STDOUT: !32 = !DISubroutineType(types: !33) // CHECK:STDOUT: !33 = !{!13, !13} // CHECK:STDOUT: !34 = !{!35} diff --git a/toolchain/lower/testdata/primitives/int_types.carbon b/toolchain/lower/testdata/primitives/int_types.carbon index 131c4b978511..48dd87afa065 100644 --- a/toolchain/lower/testdata/primitives/int_types.carbon +++ b/toolchain/lower/testdata/primitives/int_types.carbon @@ -166,67 +166,67 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenSigned.Main(i8 %a) #0 !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.binding.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99"(i8 %a), !dbg !11 -// CHECK:STDOUT: ret i32 %From.binding.as_type.as.ImplicitAs.impl.Convert.call, !dbg !11 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99"(i8 %a), !dbg !11 +// CHECK:STDOUT: ret i32 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !11 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenUnsigned.Main(i8 %a) #0 !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0e306488ea9f63ef"(i8 %a), !dbg !19 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.f719212507b35673"(i8 %a), !dbg !19 // CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i32 @_CImplicitWidenUnsignedToSigned.Main(i8 %a) #0 !dbg !20 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0237a74cabc89c74"(i8 %a), !dbg !25 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.41ecbc1244e9767f"(i8 %a), !dbg !25 // CHECK:STDOUT: ret i32 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !25 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i5 @_CImplicitWidenCustom.Main(i4 %a) #0 !dbg !26 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %From.binding.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49"(i4 %a), !dbg !33 -// CHECK:STDOUT: ret i5 %From.binding.as_type.as.ImplicitAs.impl.Convert.call, !dbg !33 +// CHECK:STDOUT: %From.as_type.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49"(i4 %a), !dbg !33 +// CHECK:STDOUT: ret i5 %From.as_type.as.ImplicitAs.impl.Convert.call, !dbg !33 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind // CHECK:STDOUT: define i5 @_CImplicitWidenUnsignedCustom.Main(i4 %a) #0 !dbg !34 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.d1cbb2cbeb4d860b"(i4 %a), !dbg !41 +// CHECK:STDOUT: %UInt.as.ImplicitAs.impl.Convert.call = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.42bd47e0fe80adfb"(i4 %a), !dbg !41 // CHECK:STDOUT: ret i5 %UInt.as.ImplicitAs.impl.Convert.call, !dbg !41 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99"(i8 %self) #0 !dbg !42 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99"(i8 %self) #0 !dbg !42 { // CHECK:STDOUT: %1 = call i8 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.ca1ac10d3fc7c1a8"(i8 %self), !dbg !46 // CHECK:STDOUT: %2 = sext i8 %1 to i32, !dbg !47 // CHECK:STDOUT: ret i32 %2, !dbg !48 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0e306488ea9f63ef"(i8 %self) #0 !dbg !49 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.081daf9d9b61e05a"(i8 %self), !dbg !53 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.f719212507b35673"(i8 %self) #0 !dbg !49 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.081daf9d9b61e05a"(i8 %self), !dbg !53 // CHECK:STDOUT: ret i32 %1, !dbg !54 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0237a74cabc89c74"(i8 %self) #0 !dbg !55 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.a15ed48781b6c2b7.Core.069b661f6a62a7bd"(i8 %self), !dbg !58 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.41ecbc1244e9767f"(i8 %self) #0 !dbg !55 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.8783fa50cc89f6ea.Core.069b661f6a62a7bd"(i8 %self), !dbg !58 // CHECK:STDOUT: ret i32 %1, !dbg !59 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49"(i4 %self) #0 !dbg !60 { +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49"(i4 %self) #0 !dbg !60 { // CHECK:STDOUT: %1 = call i4 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.044c7d430ddd4fd6"(i4 %self), !dbg !63 // CHECK:STDOUT: %2 = sext i4 %1 to i5, !dbg !64 // CHECK:STDOUT: ret i5 %2, !dbg !65 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.d1cbb2cbeb4d860b"(i4 %self) #0 !dbg !66 { -// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.b0c274f0050b1ce4"(i4 %self), !dbg !69 +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.42bd47e0fe80adfb"(i4 %self) #0 !dbg !66 { +// CHECK:STDOUT: %1 = call i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.b0c274f0050b1ce4"(i4 %self), !dbg !69 // CHECK:STDOUT: ret i5 %1, !dbg !70 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -236,14 +236,14 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.081daf9d9b61e05a"(i8 %from) #0 !dbg !77 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.081daf9d9b61e05a"(i8 %from) #0 !dbg !77 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !80 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !81 // CHECK:STDOUT: ret i32 %2, !dbg !82 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.a15ed48781b6c2b7.Core.069b661f6a62a7bd"(i8 %from) #0 !dbg !83 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.Int.9452f4c51951679b.Core:FromUInt.8783fa50cc89f6ea.Core.069b661f6a62a7bd"(i8 %from) #0 !dbg !83 { // CHECK:STDOUT: %1 = call i8 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.ca1ac10d3fc7c1a8"(i8 %from), !dbg !86 // CHECK:STDOUT: %2 = zext i8 %1 to i32, !dbg !87 // CHECK:STDOUT: ret i32 %2, !dbg !88 @@ -255,7 +255,7 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.b0c274f0050b1ce4"(i4 %from) #0 !dbg !95 { +// CHECK:STDOUT: define linkonce_odr i5 @"_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.b0c274f0050b1ce4"(i4 %from) #0 !dbg !95 { // CHECK:STDOUT: %1 = call i4 @"_CAsUInt.UInt.9452f4c51951679b.Core:AnyUInt.Core.044c7d430ddd4fd6"(i4 %from), !dbg !98 // CHECK:STDOUT: %2 = zext i4 %1 to i5, !dbg !99 // CHECK:STDOUT: ret i5 %2, !dbg !100 @@ -321,31 +321,31 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !39 = !{!40} // CHECK:STDOUT: !40 = !DILocalVariable(arg: 1, scope: !34, type: !38) // CHECK:STDOUT: !41 = !DILocation(line: 8, column: 67, scope: !34) -// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99", scope: null, file: !43, line: 62, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) +// CHECK:STDOUT: !42 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.aa7228341bdcca99", scope: null, file: !43, line: 62, type: !5, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !44) // CHECK:STDOUT: !43 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !44 = !{!45} // CHECK:STDOUT: !45 = !DILocalVariable(arg: 1, scope: !42, type: !8) // CHECK:STDOUT: !46 = !DILocation(line: 64, column: 17, scope: !42) // CHECK:STDOUT: !47 = !DILocation(line: 64, column: 12, scope: !42) // CHECK:STDOUT: !48 = !DILocation(line: 64, column: 5, scope: !42) -// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0e306488ea9f63ef", scope: null, file: !50, line: 86, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) +// CHECK:STDOUT: !49 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.f719212507b35673", scope: null, file: !50, line: 86, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !51) // CHECK:STDOUT: !50 = !DIFile(filename: "{{.*}}/prelude/types/uint.carbon", directory: "") // CHECK:STDOUT: !51 = !{!52} // CHECK:STDOUT: !52 = !DILocalVariable(arg: 1, scope: !49, type: !16) // CHECK:STDOUT: !53 = !DILocation(line: 87, column: 12, scope: !49) // CHECK:STDOUT: !54 = !DILocation(line: 87, column: 5, scope: !49) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.0237a74cabc89c74", scope: null, file: !50, line: 86, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.41ecbc1244e9767f", scope: null, file: !50, line: 86, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !56) // CHECK:STDOUT: !56 = !{!57} // CHECK:STDOUT: !57 = !DILocalVariable(arg: 1, scope: !55, type: !16) // CHECK:STDOUT: !58 = !DILocation(line: 87, column: 12, scope: !55) // CHECK:STDOUT: !59 = !DILocation(line: 87, column: 5, scope: !55) -// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49", scope: null, file: !43, line: 62, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) +// CHECK:STDOUT: !60 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.61459d64876d7c49", scope: null, file: !43, line: 62, type: !27, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !61) // CHECK:STDOUT: !61 = !{!62} // CHECK:STDOUT: !62 = !DILocalVariable(arg: 1, scope: !60, type: !30) // CHECK:STDOUT: !63 = !DILocation(line: 64, column: 17, scope: !60) // CHECK:STDOUT: !64 = !DILocation(line: 64, column: 12, scope: !60) // CHECK:STDOUT: !65 = !DILocation(line: 64, column: 5, scope: !60) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.952fa4f2c764f083.Core.d1cbb2cbeb4d860b", scope: null, file: !50, line: 86, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:ImplicitAs.40925497cdcf8bac.Core.42bd47e0fe80adfb", scope: null, file: !50, line: 86, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !67) // CHECK:STDOUT: !67 = !{!68} // CHECK:STDOUT: !68 = !DILocalVariable(arg: 1, scope: !66, type: !38) // CHECK:STDOUT: !69 = !DILocation(line: 87, column: 12, scope: !66) @@ -356,13 +356,13 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !71, type: !8) // CHECK:STDOUT: !76 = !DILocation(line: 57, column: 36, scope: !71) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.081daf9d9b61e05a", scope: null, file: !50, line: 70, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.081daf9d9b61e05a", scope: null, file: !50, line: 70, type: !13, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !16) // CHECK:STDOUT: !80 = !DILocation(line: 72, column: 17, scope: !77) // CHECK:STDOUT: !81 = !DILocation(line: 72, column: 12, scope: !77) // CHECK:STDOUT: !82 = !DILocation(line: 72, column: 5, scope: !77) -// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.a15ed48781b6c2b7.Core.069b661f6a62a7bd", scope: null, file: !50, line: 78, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) +// CHECK:STDOUT: !83 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.Int.9452f4c51951679b.Core:FromUInt.8783fa50cc89f6ea.Core.069b661f6a62a7bd", scope: null, file: !50, line: 78, type: !21, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !84) // CHECK:STDOUT: !84 = !{!85} // CHECK:STDOUT: !85 = !DILocalVariable(arg: 1, scope: !83, type: !16) // CHECK:STDOUT: !86 = !DILocation(line: 80, column: 17, scope: !83) @@ -374,7 +374,7 @@ fn ImplicitWidenUnsignedCustom(a: Core.UInt(4)) -> Core.UInt(5) { return a; } // CHECK:STDOUT: !92 = !{!93} // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !89, type: !30) // CHECK:STDOUT: !94 = !DILocation(line: 57, column: 36, scope: !89) -// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.382a8acefd0525fe.Core.b0c274f0050b1ce4", scope: null, file: !50, line: 70, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) +// CHECK:STDOUT: !95 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.UInt.9452f4c51951679b.Core:FromUInt.fc2af06d5e7ef84c.Core.b0c274f0050b1ce4", scope: null, file: !50, line: 70, type: !35, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !96) // CHECK:STDOUT: !96 = !{!97} // CHECK:STDOUT: !97 = !DILocalVariable(arg: 1, scope: !95, type: !38) // CHECK:STDOUT: !98 = !DILocation(line: 72, column: 17, scope: !95) diff --git a/toolchain/lower/testdata/primitives/optional.carbon b/toolchain/lower/testdata/primitives/optional.carbon index 04c6eee125bf..db695136b912 100644 --- a/toolchain/lower/testdata/primitives/optional.carbon +++ b/toolchain/lower/testdata/primitives/optional.carbon @@ -49,11 +49,11 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: if.then: ; preds = %entry // CHECK:STDOUT: %Optional.Get.call = call ptr @_CGet.Optional.Core.03e3348579103d79(ptr %o), !dbg !19 // CHECK:STDOUT: %.loc18_12.2 = load i32, ptr %Optional.Get.call, align 4, !dbg !20 -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579"(ptr %return, i32 %.loc18_12.2), !dbg !21 +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4"(ptr %return, i32 %.loc18_12.2), !dbg !21 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %entry -// CHECK:STDOUT: call void @_CNone.Optional.Core.30ced37eb1e63547(ptr %return), !dbg !22 +// CHECK:STDOUT: call void @_CNone.Optional.Core.1cf7a59e6b610f99(ptr %return), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -69,29 +69,29 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: %_.var.loc30 = alloca <{ i32, i1 }>, align 8, !dbg !36 // CHECK:STDOUT: %_.var.loc31 = alloca <{ i32, i1 }>, align 8, !dbg !37 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc24), !dbg !30 -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579"(ptr %_.var.loc24, i32 %a), !dbg !30 +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4"(ptr %_.var.loc24, i32 %a), !dbg !30 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc25), !dbg !31 -// CHECK:STDOUT: call void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.77b263a5fd240ddf"(ptr %_.var.loc25, i32 %a), !dbg !31 +// CHECK:STDOUT: call void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.82369a4a757fb6f9"(ptr %_.var.loc25, i32 %a), !dbg !31 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc26), !dbg !32 -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.787d589b54a95071"(ptr %_.var.loc26, i32 %a), !dbg !32 +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.afa4bd38e7c54446"(ptr %_.var.loc26, i32 %a), !dbg !32 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc27), !dbg !33 -// CHECK:STDOUT: call void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.25fb32d66f981ccd"(ptr %_.var.loc27, i32 %a), !dbg !33 +// CHECK:STDOUT: call void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.18692096e0cb24e2"(ptr %_.var.loc27, i32 %a), !dbg !33 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc28), !dbg !34 -// CHECK:STDOUT: call void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.77b263a5fd240ddf"(ptr %_.var.loc28, i32 %b), !dbg !34 +// CHECK:STDOUT: call void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.82369a4a757fb6f9"(ptr %_.var.loc28, i32 %b), !dbg !34 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc29), !dbg !35 -// CHECK:STDOUT: call void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.693532dcb04bf6dc"(ptr %_.var.loc29, i32 %b), !dbg !35 +// CHECK:STDOUT: call void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.4455d2d83f18e89b"(ptr %_.var.loc29, i32 %b), !dbg !35 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc30), !dbg !36 -// CHECK:STDOUT: call void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.25fb32d66f981ccd"(ptr %_.var.loc30, i32 %b), !dbg !36 +// CHECK:STDOUT: call void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.18692096e0cb24e2"(ptr %_.var.loc30, i32 %b), !dbg !36 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %_.var.loc31), !dbg !37 -// CHECK:STDOUT: call void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.1c991c9fdfba671f"(ptr %_.var.loc31, i32 %b), !dbg !37 -// CHECK:STDOUT: call void @"_COp.d36c7307651a37b3:core.Destroy.Core"(ptr %_.var.loc31), !dbg !37 -// CHECK:STDOUT: call void @"_COp.5553625be1dd8a40:core.Destroy.Core"(ptr %_.var.loc30), !dbg !36 -// CHECK:STDOUT: call void @"_COp.674b1a1b79996ecc:core.Destroy.Core"(ptr %_.var.loc29), !dbg !35 -// CHECK:STDOUT: call void @"_COp.0bee941dbd1b8cad:core.Destroy.Core"(ptr %_.var.loc28), !dbg !34 -// CHECK:STDOUT: call void @"_COp.d36c7307651a37b3:core.Destroy.Core"(ptr %_.var.loc27), !dbg !33 -// CHECK:STDOUT: call void @"_COp.5553625be1dd8a40:core.Destroy.Core"(ptr %_.var.loc26), !dbg !32 -// CHECK:STDOUT: call void @"_COp.674b1a1b79996ecc:core.Destroy.Core"(ptr %_.var.loc25), !dbg !31 -// CHECK:STDOUT: call void @"_COp.0bee941dbd1b8cad:core.Destroy.Core"(ptr %_.var.loc24), !dbg !30 +// CHECK:STDOUT: call void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.06eea6c30aacdc45"(ptr %_.var.loc31, i32 %b), !dbg !37 +// CHECK:STDOUT: call void @"_COp.0d1642a71859a6de:core.Destroy.Core"(ptr %_.var.loc31), !dbg !37 +// CHECK:STDOUT: call void @"_COp.a254d3e093c759d7:core.Destroy.Core"(ptr %_.var.loc30), !dbg !36 +// CHECK:STDOUT: call void @"_COp.f6c1a73754191bd4:core.Destroy.Core"(ptr %_.var.loc29), !dbg !35 +// CHECK:STDOUT: call void @"_COp.b6ef84402181ba6f:core.Destroy.Core"(ptr %_.var.loc28), !dbg !34 +// CHECK:STDOUT: call void @"_COp.0d1642a71859a6de:core.Destroy.Core"(ptr %_.var.loc27), !dbg !33 +// CHECK:STDOUT: call void @"_COp.a254d3e093c759d7:core.Destroy.Core"(ptr %_.var.loc26), !dbg !32 +// CHECK:STDOUT: call void @"_COp.f6c1a73754191bd4:core.Destroy.Core"(ptr %_.var.loc25), !dbg !31 +// CHECK:STDOUT: call void @"_COp.b6ef84402181ba6f:core.Destroy.Core"(ptr %_.var.loc24), !dbg !30 // CHECK:STDOUT: ret void, !dbg !38 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -114,19 +114,19 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.9fb3992c261f67a7:core.Destroy.Core"(ptr %self) #0 !dbg !53 { +// CHECK:STDOUT: define weak_odr void @"_COp.37b99eb8140c67dc:core.Destroy.Core"(ptr %self) #0 !dbg !53 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !56 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.5553625be1dd8a40:core.Destroy.Core"(ptr %self) #0 !dbg !57 { +// CHECK:STDOUT: define weak_odr void @"_COp.a254d3e093c759d7:core.Destroy.Core"(ptr %self) #0 !dbg !57 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !60 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.d36c7307651a37b3:core.Destroy.Core"(ptr %self) #0 !dbg !61 { +// CHECK:STDOUT: define weak_odr void @"_COp.0d1642a71859a6de:core.Destroy.Core"(ptr %self) #0 !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } @@ -150,13 +150,13 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.0bee941dbd1b8cad:core.Destroy.Core"(ptr %self) #0 !dbg !77 { +// CHECK:STDOUT: define weak_odr void @"_COp.b6ef84402181ba6f:core.Destroy.Core"(ptr %self) #0 !dbg !77 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !80 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define weak_odr void @"_COp.674b1a1b79996ecc:core.Destroy.Core"(ptr %self) #0 !dbg !81 { +// CHECK:STDOUT: define weak_odr void @"_COp.f6c1a73754191bd4:core.Destroy.Core"(ptr %self) #0 !dbg !81 { // CHECK:STDOUT: entry: // CHECK:STDOUT: ret void, !dbg !84 // CHECK:STDOUT: } @@ -174,14 +174,14 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !96 { -// CHECK:STDOUT: call void @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.30ced37eb1e63547"(ptr %return, i32 %self), !dbg !101 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !96 { +// CHECK:STDOUT: call void @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.1cf7a59e6b610f99"(ptr %return, i32 %self), !dbg !101 // CHECK:STDOUT: ret void, !dbg !102 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.30ced37eb1e63547(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { -// CHECK:STDOUT: call void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return), !dbg !106 +// CHECK:STDOUT: define linkonce_odr void @_CNone.Optional.Core.1cf7a59e6b610f99(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !103 { +// CHECK:STDOUT: call void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return), !dbg !106 // CHECK:STDOUT: ret void, !dbg !107 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -189,44 +189,44 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.77b263a5fd240ddf"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !108 { -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579"(ptr %return, i32 %self), !dbg !112 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.82369a4a757fb6f9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !108 { +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4"(ptr %return, i32 %self), !dbg !112 // CHECK:STDOUT: ret void, !dbg !113 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.787d589b54a95071"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !114 { -// CHECK:STDOUT: call void @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.5d35ad54738af8e4"(ptr %return, i32 %self), !dbg !117 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.afa4bd38e7c54446"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !114 { +// CHECK:STDOUT: call void @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.4d66cd83b8a854d5"(ptr %return, i32 %self), !dbg !117 // CHECK:STDOUT: ret void, !dbg !118 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.25fb32d66f981ccd"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !119 { -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.787d589b54a95071"(ptr %return, i32 %self), !dbg !122 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.18692096e0cb24e2"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !119 { +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.afa4bd38e7c54446"(ptr %return, i32 %self), !dbg !122 // CHECK:STDOUT: ret void, !dbg !123 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.77b263a5fd240ddf"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !124 { -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579"(ptr %return, i32 %self), !dbg !127 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.82369a4a757fb6f9"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !124 { +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4"(ptr %return, i32 %self), !dbg !127 // CHECK:STDOUT: ret void, !dbg !128 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.693532dcb04bf6dc"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !129 { -// CHECK:STDOUT: call void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.77b263a5fd240ddf"(ptr %return, i32 %self), !dbg !132 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.4455d2d83f18e89b"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !129 { +// CHECK:STDOUT: call void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.82369a4a757fb6f9"(ptr %return, i32 %self), !dbg !132 // CHECK:STDOUT: ret void, !dbg !133 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.25fb32d66f981ccd"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !134 { -// CHECK:STDOUT: call void @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.787d589b54a95071"(ptr %return, i32 %self), !dbg !137 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.18692096e0cb24e2"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !134 { +// CHECK:STDOUT: call void @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.afa4bd38e7c54446"(ptr %return, i32 %self), !dbg !137 // CHECK:STDOUT: ret void, !dbg !138 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.1c991c9fdfba671f"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { -// CHECK:STDOUT: call void @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.25fb32d66f981ccd"(ptr %return, i32 %self), !dbg !142 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.06eea6c30aacdc45"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !139 { +// CHECK:STDOUT: call void @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.18692096e0cb24e2"(ptr %return, i32 %self), !dbg !142 // CHECK:STDOUT: ret void, !dbg !143 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -243,50 +243,50 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.30ced37eb1e63547"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !154 { -// CHECK:STDOUT: call void @_CSome.Optional.Core.30ced37eb1e63547(ptr %return, i32 %self), !dbg !157 +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.1cf7a59e6b610f99"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !154 { +// CHECK:STDOUT: call void @_CSome.Optional.Core.1cf7a59e6b610f99(ptr %return, i32 %self), !dbg !157 // CHECK:STDOUT: ret void, !dbg !158 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !159 { +// CHECK:STDOUT: define linkonce_odr void @"_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return) #0 !dbg !159 { // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !160 // CHECK:STDOUT: store i8 0, ptr %has_value, align 1, !dbg !160 // CHECK:STDOUT: ret void, !dbg !161 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.5d35ad54738af8e4"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !162 { +// CHECK:STDOUT: define linkonce_odr void @"_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.4d66cd83b8a854d5"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !162 { // CHECK:STDOUT: %temp = alloca i32, align 4, !dbg !165 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %temp), !dbg !165 -// CHECK:STDOUT: %1 = call i32 @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.90a4f5ca3e06badd"(i32 %self), !dbg !165 +// CHECK:STDOUT: %1 = call i32 @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.bc6e7cc1f73fc0ac"(i32 %self), !dbg !165 // CHECK:STDOUT: store i32 %1, ptr %temp, align 4, !dbg !165 // CHECK:STDOUT: %2 = load i32, ptr %temp, align 4, !dbg !165 -// CHECK:STDOUT: call void @_CSome.Optional.Core.b0246d3dd29c9210(ptr %return, i32 %2), !dbg !166 +// CHECK:STDOUT: call void @_CSome.Optional.Core.7b25bb243f6b640f(ptr %return, i32 %2), !dbg !166 // CHECK:STDOUT: call void @"_COp.957ebacb0fd15edb:core.Destroy.Core"(ptr %temp), !dbg !165 // CHECK:STDOUT: ret void, !dbg !167 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.30ced37eb1e63547(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !168 { -// CHECK:STDOUT: call void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return, i32 %value), !dbg !171 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.1cf7a59e6b610f99(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !168 { +// CHECK:STDOUT: call void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr %return, i32 %value), !dbg !171 // CHECK:STDOUT: ret void, !dbg !172 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.90a4f5ca3e06badd"(i32 %self) #0 !dbg !173 { -// CHECK:STDOUT: %1 = call i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self), !dbg !176 +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.bc6e7cc1f73fc0ac"(i32 %self) #0 !dbg !173 { +// CHECK:STDOUT: %1 = call i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self), !dbg !176 // CHECK:STDOUT: ret i32 %1, !dbg !177 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.b0246d3dd29c9210(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !178 { -// CHECK:STDOUT: call void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.5325ffa2b57e13bd"(ptr %return, i32 %value), !dbg !181 +// CHECK:STDOUT: define linkonce_odr void @_CSome.Optional.Core.7b25bb243f6b640f(ptr sret(<{ i32, i1 }>) %return, i32 %value) #0 !dbg !178 { +// CHECK:STDOUT: call void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.8a8bbee1ee7003f6"(ptr %return, i32 %value), !dbg !181 // CHECK:STDOUT: ret void, !dbg !182 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !183 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !183 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !186 // CHECK:STDOUT: store i32 %self, ptr %value, align 4, !dbg !186 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !187 @@ -295,15 +295,15 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !189 { +// CHECK:STDOUT: define linkonce_odr i32 @"_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d"(i32 %self) #0 !dbg !189 { // CHECK:STDOUT: %1 = call i32 @"_CAsInt.Int.9452f4c51951679b.Core:AnyInt.Core.be1e879c1ad406d8"(i32 %self), !dbg !195 // CHECK:STDOUT: ret i32 %1, !dbg !196 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr void @"_CSome.3e8267224c5dc9c2:OptionalStorage.Core.5325ffa2b57e13bd"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !197 { +// CHECK:STDOUT: define linkonce_odr void @"_CSome.41c279c2a75ec21d:OptionalStorage.Core.8a8bbee1ee7003f6"(ptr sret(<{ i32, i1 }>) %return, i32 %self) #0 !dbg !197 { // CHECK:STDOUT: %value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 0, !dbg !200 -// CHECK:STDOUT: %1 = call i32 @"_COp.34e7a685d3648824:Copy.Core.64ccbb8e5d9a0b8e"(i32 %self), !dbg !201 +// CHECK:STDOUT: %1 = call i32 @"_COp.356fbf842fce682d:Copy.Core.64ccbb8e5d9a0b8e"(i32 %self), !dbg !201 // CHECK:STDOUT: store i32 %1, ptr %value, align 4, !dbg !200 // CHECK:STDOUT: %has_value = getelementptr inbounds nuw <{ i32, i1 }>, ptr %return, i32 0, i32 1, !dbg !202 // CHECK:STDOUT: store i8 1, ptr %has_value, align 1, !dbg !202 @@ -316,16 +316,16 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; Function Attrs: nounwind -// CHECK:STDOUT: define linkonce_odr i32 @"_COp.34e7a685d3648824:Copy.Core.64ccbb8e5d9a0b8e"(i32 %self) #0 !dbg !208 { +// CHECK:STDOUT: define linkonce_odr i32 @"_COp.356fbf842fce682d:Copy.Core.64ccbb8e5d9a0b8e"(i32 %self) #0 !dbg !208 { // CHECK:STDOUT: ret i32 %self, !dbg !212 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: ; uselistorder directives -// CHECK:STDOUT: uselistorder ptr @"_COp.5553625be1dd8a40:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.d36c7307651a37b3:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.0bee941dbd1b8cad:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_COp.674b1a1b79996ecc:core.Destroy.Core", { 1, 0 } -// CHECK:STDOUT: uselistorder ptr @"_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579", { 0, 1, 3, 2 } +// CHECK:STDOUT: uselistorder ptr @"_COp.a254d3e093c759d7:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.0d1642a71859a6de:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.b6ef84402181ba6f:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_COp.f6c1a73754191bd4:core.Destroy.Core", { 1, 0 } +// CHECK:STDOUT: uselistorder ptr @"_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4", { 0, 1, 3, 2 } // CHECK:STDOUT: uselistorder ptr @llvm.lifetime.start.p0, { 0, 8, 7, 6, 5, 4, 3, 2, 1 } // CHECK:STDOUT: // CHECK:STDOUT: attributes #0 = { nounwind } @@ -387,15 +387,15 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !50 = !{!51} // CHECK:STDOUT: !51 = !DILocalVariable(arg: 1, scope: !49, type: !14) // CHECK:STDOUT: !52 = !DILocation(line: 31, column: 3, scope: !49) -// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.9fb3992c261f67a7:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) +// CHECK:STDOUT: !53 = distinct !DISubprogram(name: "Op", linkageName: "_COp.37b99eb8140c67dc:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !54) // CHECK:STDOUT: !54 = !{!55} // CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !14) // CHECK:STDOUT: !56 = !DILocation(line: 31, column: 3, scope: !53) -// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.5553625be1dd8a40:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) +// CHECK:STDOUT: !57 = distinct !DISubprogram(name: "Op", linkageName: "_COp.a254d3e093c759d7:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !58) // CHECK:STDOUT: !58 = !{!59} // CHECK:STDOUT: !59 = !DILocalVariable(arg: 1, scope: !57, type: !14) // CHECK:STDOUT: !60 = !DILocation(line: 31, column: 3, scope: !57) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.d36c7307651a37b3:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0d1642a71859a6de:core.Destroy.Core", scope: null, file: !3, line: 31, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !62) // CHECK:STDOUT: !62 = !{!63} // CHECK:STDOUT: !63 = !DILocalVariable(arg: 1, scope: !61, type: !14) // CHECK:STDOUT: !64 = !DILocation(line: 31, column: 3, scope: !61) @@ -411,11 +411,11 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !74 = !{!75} // CHECK:STDOUT: !75 = !DILocalVariable(arg: 1, scope: !73, type: !14) // CHECK:STDOUT: !76 = !DILocation(line: 29, column: 3, scope: !73) -// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.0bee941dbd1b8cad:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) +// CHECK:STDOUT: !77 = distinct !DISubprogram(name: "Op", linkageName: "_COp.b6ef84402181ba6f:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !78) // CHECK:STDOUT: !78 = !{!79} // CHECK:STDOUT: !79 = !DILocalVariable(arg: 1, scope: !77, type: !14) // CHECK:STDOUT: !80 = !DILocation(line: 29, column: 3, scope: !77) -// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.674b1a1b79996ecc:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) +// CHECK:STDOUT: !81 = distinct !DISubprogram(name: "Op", linkageName: "_COp.f6c1a73754191bd4:core.Destroy.Core", scope: null, file: !3, line: 29, type: !40, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !82) // CHECK:STDOUT: !82 = !{!83} // CHECK:STDOUT: !83 = !DILocalVariable(arg: 1, scope: !81, type: !14) // CHECK:STDOUT: !84 = !DILocation(line: 29, column: 3, scope: !81) @@ -430,50 +430,50 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !93 = !DILocalVariable(arg: 1, scope: !91, type: !14) // CHECK:STDOUT: !94 = !DILocation(line: 37, column: 12, scope: !91) // CHECK:STDOUT: !95 = !DILocation(line: 37, column: 5, scope: !91) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.6b1f19368d09e579", scope: null, file: !86, line: 96, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.5a0e7187546c44f4", scope: null, file: !86, line: 96, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !99) // CHECK:STDOUT: !97 = !DISubroutineType(types: !98) // CHECK:STDOUT: !98 = !{!14, !7} // CHECK:STDOUT: !99 = !{!100} // CHECK:STDOUT: !100 = !DILocalVariable(arg: 1, scope: !96, type: !7) // CHECK:STDOUT: !101 = !DILocation(line: 97, column: 12, scope: !96) // CHECK:STDOUT: !102 = !DILocation(line: 97, column: 5, scope: !96) -// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.30ced37eb1e63547", scope: null, file: !86, line: 27, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !103 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.1cf7a59e6b610f99", scope: null, file: !86, line: 27, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !104 = !DISubroutineType(types: !105) // CHECK:STDOUT: !105 = !{!14} // CHECK:STDOUT: !106 = !DILocation(line: 28, column: 12, scope: !103) // CHECK:STDOUT: !107 = !DILocation(line: 28, column: 5, scope: !103) -// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.77b263a5fd240ddf", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) +// CHECK:STDOUT: !108 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.82369a4a757fb6f9", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !110) // CHECK:STDOUT: !109 = !DIFile(filename: "{{.*}}/prelude/operators/as.carbon", directory: "") // CHECK:STDOUT: !110 = !{!111} // CHECK:STDOUT: !111 = !DILocalVariable(arg: 1, scope: !108, type: !7) // CHECK:STDOUT: !112 = !DILocation(line: 40, column: 45, scope: !108) // CHECK:STDOUT: !113 = !DILocation(line: 40, column: 38, scope: !108) -// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.e5cf8fcbb4feaae2:ImplicitAs.0f95c9e18c91e00a.Core.787d589b54a95071", scope: null, file: !86, line: 96, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !115) +// CHECK:STDOUT: !114 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81f236ae340cbf98:ImplicitAs.0f95c9e18c91e00a.Core.afa4bd38e7c54446", scope: null, file: !86, line: 96, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !115) // CHECK:STDOUT: !115 = !{!116} // CHECK:STDOUT: !116 = !DILocalVariable(arg: 1, scope: !114, type: !7) // CHECK:STDOUT: !117 = !DILocation(line: 97, column: 12, scope: !114) // CHECK:STDOUT: !118 = !DILocation(line: 97, column: 5, scope: !114) -// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.25fb32d66f981ccd", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) +// CHECK:STDOUT: !119 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.18692096e0cb24e2", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !120) // CHECK:STDOUT: !120 = !{!121} // CHECK:STDOUT: !121 = !DILocalVariable(arg: 1, scope: !119, type: !7) // CHECK:STDOUT: !122 = !DILocation(line: 40, column: 45, scope: !119) // CHECK:STDOUT: !123 = !DILocation(line: 40, column: 38, scope: !119) -// CHECK:STDOUT: !124 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.77b263a5fd240ddf", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) +// CHECK:STDOUT: !124 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.82369a4a757fb6f9", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !125) // CHECK:STDOUT: !125 = !{!126} // CHECK:STDOUT: !126 = !DILocalVariable(arg: 1, scope: !124, type: !7) // CHECK:STDOUT: !127 = !DILocation(line: 44, column: 45, scope: !124) // CHECK:STDOUT: !128 = !DILocation(line: 44, column: 38, scope: !124) -// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.693532dcb04bf6dc", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !130) +// CHECK:STDOUT: !129 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.4455d2d83f18e89b", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !130) // CHECK:STDOUT: !130 = !{!131} // CHECK:STDOUT: !131 = !DILocalVariable(arg: 1, scope: !129, type: !7) // CHECK:STDOUT: !132 = !DILocation(line: 44, column: 45, scope: !129) // CHECK:STDOUT: !133 = !DILocation(line: 44, column: 38, scope: !129) -// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.25fb32d66f981ccd", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !135) +// CHECK:STDOUT: !134 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.18692096e0cb24e2", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !135) // CHECK:STDOUT: !135 = !{!136} // CHECK:STDOUT: !136 = !DILocalVariable(arg: 1, scope: !134, type: !7) // CHECK:STDOUT: !137 = !DILocation(line: 44, column: 45, scope: !134) // CHECK:STDOUT: !138 = !DILocation(line: 44, column: 38, scope: !134) -// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.17f42c13d842b71d:ImplicitAs.eb057aa32837c84e.Core.1c991c9fdfba671f", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !140) +// CHECK:STDOUT: !139 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.b6295decd2c96c07:ImplicitAs.eb057aa32837c84e.Core.06eea6c30aacdc45", scope: null, file: !109, line: 44, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !140) // CHECK:STDOUT: !140 = !{!141} // CHECK:STDOUT: !141 = !DILocalVariable(arg: 1, scope: !139, type: !7) // CHECK:STDOUT: !142 = !DILocation(line: 44, column: 45, scope: !139) @@ -488,42 +488,42 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !151 = !{!152} // CHECK:STDOUT: !152 = !DILocalVariable(arg: 1, scope: !150, type: !14) // CHECK:STDOUT: !153 = !DILocation(line: 160, column: 5, scope: !150) -// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.90961d7b1ce4f089:OptionalAs.0e326e799dad0c64.Core.30ced37eb1e63547", scope: null, file: !86, line: 71, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) +// CHECK:STDOUT: !154 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a15aada625dab765:OptionalAs.0e326e799dad0c64.Core.1cf7a59e6b610f99", scope: null, file: !86, line: 71, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !155) // CHECK:STDOUT: !155 = !{!156} // CHECK:STDOUT: !156 = !DILocalVariable(arg: 1, scope: !154, type: !7) // CHECK:STDOUT: !157 = !DILocation(line: 72, column: 12, scope: !154) // CHECK:STDOUT: !158 = !DILocation(line: 72, column: 5, scope: !154) -// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "None", linkageName: "_CNone.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !86, line: 116, type: !104, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !159 = distinct !DISubprogram(name: "None", linkageName: "_CNone.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !86, line: 116, type: !104, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !160 = !DILocation(line: 119, column: 5, scope: !159) // CHECK:STDOUT: !161 = !DILocation(line: 120, column: 5, scope: !159) -// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.3667eb502d1ddfa9:OptionalAs.c7a50af9bdd61b43.Core.5d35ad54738af8e4", scope: null, file: !86, line: 78, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !163) +// CHECK:STDOUT: !162 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.81a1ecd9155a3498:OptionalAs.f58b2ba767714873.Core.4d66cd83b8a854d5", scope: null, file: !86, line: 78, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !163) // CHECK:STDOUT: !163 = !{!164} // CHECK:STDOUT: !164 = !DILocalVariable(arg: 1, scope: !162, type: !7) // CHECK:STDOUT: !165 = !DILocation(line: 79, column: 29, scope: !162) // CHECK:STDOUT: !166 = !DILocation(line: 79, column: 12, scope: !162) // CHECK:STDOUT: !167 = !DILocation(line: 79, column: 5, scope: !162) -// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.30ced37eb1e63547", scope: null, file: !86, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !169) +// CHECK:STDOUT: !168 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.1cf7a59e6b610f99", scope: null, file: !86, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !169) // CHECK:STDOUT: !169 = !{!170} // CHECK:STDOUT: !170 = !DILocalVariable(arg: 1, scope: !168, type: !7) // CHECK:STDOUT: !171 = !DILocation(line: 31, column: 12, scope: !168) // CHECK:STDOUT: !172 = !DILocation(line: 31, column: 5, scope: !168) -// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.a44fce96e16342e7:ImplicitAs.ad22d1bbc0605210.Core.90a4f5ca3e06badd", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) +// CHECK:STDOUT: !173 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.7f5e648ca99d8630:ImplicitAs.ad22d1bbc0605210.Core.bc6e7cc1f73fc0ac", scope: null, file: !109, line: 40, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !174) // CHECK:STDOUT: !174 = !{!175} // CHECK:STDOUT: !175 = !DILocalVariable(arg: 1, scope: !173, type: !7) // CHECK:STDOUT: !176 = !DILocation(line: 40, column: 45, scope: !173) // CHECK:STDOUT: !177 = !DILocation(line: 40, column: 38, scope: !173) -// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.b0246d3dd29c9210", scope: null, file: !86, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !179) +// CHECK:STDOUT: !178 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.7b25bb243f6b640f", scope: null, file: !86, line: 30, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !179) // CHECK:STDOUT: !179 = !{!180} // CHECK:STDOUT: !180 = !DILocalVariable(arg: 1, scope: !178, type: !7) // CHECK:STDOUT: !181 = !DILocation(line: 31, column: 12, scope: !178) // CHECK:STDOUT: !182 = !DILocation(line: 31, column: 5, scope: !178) -// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.3e8267224c5dc9c2:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !86, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) +// CHECK:STDOUT: !183 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.41c279c2a75ec21d:OptionalStorage.Core.bfb441135f07cbe1", scope: null, file: !86, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !184) // CHECK:STDOUT: !184 = !{!185} // CHECK:STDOUT: !185 = !DILocalVariable(arg: 1, scope: !183, type: !7) // CHECK:STDOUT: !186 = !DILocation(line: 128, column: 5, scope: !183) // CHECK:STDOUT: !187 = !DILocation(line: 129, column: 5, scope: !183) // CHECK:STDOUT: !188 = !DILocation(line: 130, column: 5, scope: !183) -// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.272fc3e88346d0d9:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !190, line: 62, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) +// CHECK:STDOUT: !189 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.1f02987e9673cc00:ImplicitAs.d993a5132e000405.Core.628184612c80324d", scope: null, file: !190, line: 62, type: !191, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !193) // CHECK:STDOUT: !190 = !DIFile(filename: "{{.*}}/prelude/types/int.carbon", directory: "") // CHECK:STDOUT: !191 = !DISubroutineType(types: !192) // CHECK:STDOUT: !192 = !{!7, !7} @@ -531,7 +531,7 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !194 = !DILocalVariable(arg: 1, scope: !189, type: !7) // CHECK:STDOUT: !195 = !DILocation(line: 64, column: 17, scope: !189) // CHECK:STDOUT: !196 = !DILocation(line: 64, column: 5, scope: !189) -// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.3e8267224c5dc9c2:OptionalStorage.Core.5325ffa2b57e13bd", scope: null, file: !86, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !198) +// CHECK:STDOUT: !197 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.41c279c2a75ec21d:OptionalStorage.Core.8a8bbee1ee7003f6", scope: null, file: !86, line: 122, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !198) // CHECK:STDOUT: !198 = !{!199} // CHECK:STDOUT: !199 = !DILocalVariable(arg: 1, scope: !197, type: !7) // CHECK:STDOUT: !200 = !DILocation(line: 128, column: 5, scope: !197) @@ -542,7 +542,7 @@ fn AddOrRemoveConst(a: i32, b: const i32) { // CHECK:STDOUT: !205 = !{!206} // CHECK:STDOUT: !206 = !DILocalVariable(arg: 1, scope: !204, type: !7) // CHECK:STDOUT: !207 = !DILocation(line: 57, column: 36, scope: !204) -// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Op", linkageName: "_COp.34e7a685d3648824:Copy.Core.64ccbb8e5d9a0b8e", scope: null, file: !209, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !210) +// CHECK:STDOUT: !208 = distinct !DISubprogram(name: "Op", linkageName: "_COp.356fbf842fce682d:Copy.Core.64ccbb8e5d9a0b8e", scope: null, file: !209, line: 19, type: !97, spFlags: DISPFlagDefinition, unit: !2, retainedNodes: !210) // CHECK:STDOUT: !209 = !DIFile(filename: "{{.*}}/prelude/copy.carbon", directory: "") // CHECK:STDOUT: !210 = !{!211} // CHECK:STDOUT: !211 = !DILocalVariable(arg: 1, scope: !208, type: !7) diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index f045bfaaf9af..b74399fb0f2a 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -149,7 +149,6 @@ CARBON_SEM_IR_INST_KIND(StructType) CARBON_SEM_IR_INST_KIND(StructValue) CARBON_SEM_IR_INST_KIND(SymbolicBinding) CARBON_SEM_IR_INST_KIND(SymbolicBindingPattern) -CARBON_SEM_IR_INST_KIND(SymbolicBindingType) CARBON_SEM_IR_INST_KIND(Temporary) CARBON_SEM_IR_INST_KIND(TemporaryStorage) CARBON_SEM_IR_INST_KIND(TupleAccess) diff --git a/toolchain/sem_ir/inst_namer.cpp b/toolchain/sem_ir/inst_namer.cpp index a4ee74c06df2..90691591d13a 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -1033,17 +1033,6 @@ auto InstNamer::NamingContext::NameInst() -> void { } return; } - case CARBON_KIND(SymbolicBindingType inst): { - auto bind = - sem_ir().insts().GetAs(inst.facet_value_inst_id); - auto name_id = sem_ir().entity_names().Get(bind.entity_name_id).name_id; - if (name_id.has_value()) { - AddInstNameId(name_id, ".binding.as_type"); - } else { - AddInstName("binding.as_type"); - } - return; - } case CARBON_KIND(FacetType inst): { const auto& facet_type_info = sem_ir().facet_types().Get(inst.facet_type_id); diff --git a/toolchain/sem_ir/stringify.cpp b/toolchain/sem_ir/stringify.cpp index 518674d7c475..1ff0b397759e 100644 --- a/toolchain/sem_ir/stringify.cpp +++ b/toolchain/sem_ir/stringify.cpp @@ -646,10 +646,6 @@ class Stringifier { } } - auto StringifyInst(InstId /*inst_id*/, SymbolicBindingType inst) -> void { - step_stack_->PushEntityNameId(inst.entity_name_id); - } - auto StringifyInst(InstId /*inst_id*/, TupleType inst) -> void { auto refs = sem_ir_->inst_blocks().Get(inst.type_elements_id); if (refs.empty()) { diff --git a/toolchain/sem_ir/type_iterator.cpp b/toolchain/sem_ir/type_iterator.cpp index 6be953cc8fb5..aae72a97079a 100644 --- a/toolchain/sem_ir/type_iterator.cpp +++ b/toolchain/sem_ir/type_iterator.cpp @@ -74,12 +74,6 @@ auto TypeIterator::ProcessTypeId(TypeId type_id) -> std::optional { return Step::SymbolicType{.entity_name_id = bind.entity_name_id, .facet_type_id = type_id}; } - case CARBON_KIND(SemIR::SymbolicBindingType bind): { - auto facet_type_id = - sem_ir_->insts().Get(bind.facet_value_inst_id).type_id(); - return Step::SymbolicType{.entity_name_id = bind.entity_name_id, - .facet_type_id = facet_type_id}; - } case Call::Kind: case TypeOfInst::Kind: { diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index 919dca8bffff..475a48969f9c 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -1921,23 +1921,6 @@ struct SymbolicBindingPattern { EntityNameId entity_name_id; }; -// The constant value of a FacetAccessType for a symbolic facet value. -struct SymbolicBindingType { - static constexpr auto Kind = - InstKind::SymbolicBindingType.Define( - {.ir_name = "symbolic_binding_type", - .is_type = InstIsType::Always, - .constant_kind = InstConstantKind::SymbolicOnly}); - - // Always the builtin type TypeType. - TypeId type_id; - // The symbolic facet value binding for which this instruction accesses the - // concrete type once it is known for the symbolic value. - EntityNameId entity_name_id; - // TODO: Remove this, and find it through a lookup on ScopeStack. - InstId facet_value_inst_id; -}; - // Consumes the initializer `init_id`, uses it to initialize a temporary // object, and forms an ephemeral reference to it. If `init_id` has a // storage arg, it must be a `TemporaryStorage` inst.